SQLiteViewer 2.8.1 Простой плагин для TC для просмотра файлов баз данных SQLite3. Поддерживаются расширения *.db, *.db3, *.sqlite, *.sqlite3 и *.fossil. Поддерживаются файлы до 2Тб, библиотека sqlite3.dll не нужна. Поддерживаются типы данных, описанные в этом документе: http://www.sqlite.org/datatype3.html Про автоматическое создание файлов при просмотре некоторых баз данных (и открытие таких баз из источников только для чтения): http://www.sqlite.org/tempfiles.html#walfile http://www.sqlite.org/wal.html Detect-строку можно изменить для открытия баз SQLite3 с различными расширениями: MULTIMEDIA&([0]="S"&[1]="Q"&[2]="L"&[3]="i"&[4]="t"&[5]="e"&[6]=" "&[7]="f"&[8]="o"&[9]="r"&[10]="m"&[11]="a"&[12]="t"&[13]=" "&[14]="3") Замечания. Сортировка по заголовкам - это новая выборка из таблицы. Рекомендуется установить ограничение на количество записей, получаемых из таблицы. PacketRecords (в ini) или/и UseRowLimit (в настройках/ini). Плагин создаёт функцию "lowerU" для перевода получаемых значений в нижний регистр (в строчные буквы) с поддержкой юникода. Пример: select * from table where loweru(column) like "%текст%". Условия распространения Это программное обеспечение (ПО) распространяется по принципу "КАК ЕСТЬ" ("AS IS") и является бесплатным для некоммерческого использования. Автор не дает никаких гарантий по работе этого ПО и не несет никакой ответственности при его использовании. История изменений Версия 1.0: * публичная версия. Версия 1.5: * улучшена поддержка файлов баз данных SQLite; + новое расширение в DetectString: sqlite (требуется переустановка плагина или задание его вручную); * исправление ошибок. Версия 1.6: + авторазмер колонок при открытии таблицы (ограничение на первую 1000 записей для увеличения скорости); + авторазмер колонки по двойному щелчку на разделителе колонок; + сортировка по щелчку по заголовку колонки; + информация о таблице; * разные исправления. Версия 1.6.1: * исправления в интерфейсе; * разные исправления. Версия 1.6.2: + текущая запись может быть скопирована в Буфер обмена в виде нескольких строк. Версия 1.7: + некоторые поля BLOB могут быть показаны как текст; + панель списка таблиц (включается в ini-файле); + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] ShowTablesPanel=0 - вкл/выкл панель таблиц (по умолчанию 0) BlobAsText=1 - вкл/выкл отображение BLOB-полей как текста (по умолчанию 1) BlobAsTextLimit=150 - лимит символов для отображения BLOB-полей (20..255, по умолчанию 150); * разные исправления. Версия 1.7.5: + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] FixDrawErrors=1 - в некоторых случаях устраняет мерцание FixScrollError=0 - не даёт перескакивать к первой колонке при прокрутке за бегунок FixDrawScrollError=0 - при установке FixScrollError=1 должен в некоторых случаях устранять мерцание (на медленных компьютерах - медленно) GridOddRowOtherColor=1 - у чётной строки другой цвет GridOddRowColor=$00F4F4F4 - цвет чётной строки. Версия 1.7.6: * может быть использован файл lsplugin.ini для чтения настроек. Версия 1.8: * обновлён движок SQLite; * базы данных сейчас открываются в режиме "только для чтения" (PRAGMA query_only); * исправлен показ таблиц с пробелом в имени; + двойной щелчок по записи открывает окно её просмотра (Record View); * BlobAsTextLimit может быть увеличен до 2000 знаков (20..2000, по умолчанию 150); + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] ShowTablesCombobox=1 - вкл/выкл выпадающий список таблиц (по умолчанию 1) StringLengthLimit=255 - лимит символов для отображения строк (20..2000, по умолчанию 255) ! Предупреждение. После увеличения лимита символов для Blob полей (да и для строковых) большие базы могут не открываться из-за нехватки памяти. SkipSystemTables=0 - не добавлять в список таблиц системные таблицы (начинаются на "sqlite_") (по умолчанию 0); * разные исправления. Версия 1.8.1: * разные исправления. Версия 1.8.2: * обновлён движок SQLite; * плагин перекомпилирован в Delphi XE4 для улучшения стабильности 64-битной версии; + информация о таблице БД в формате SQL; * ошибочная сортировка после клика по заголовку таблицы правой кнопкой, а затем в любом её месте; * разные исправления. Версия 1.8.3: * обновлён движок SQLite; + поддержка таблиц, созданных с фразой "WITHOUT ROWID" (https://www.sqlite.org/withoutrowid.html). Версия 1.8.4: * обновлён движок SQLite; + новые расширения в DetectString: sqlite3 и fossil (требуется переустановка плагина или задание их вручную). Версия 1.8.5: * обновлён движок SQLite; + простой фильтр по всем полям таблицы с использованием оператора LIKE (стандартный диалог поиска TC (без опций) - F7). Версия 1.8.6: * обновлён движок SQLite; * сейчас фильтр для юникодных слов не чувствителен к регистру и может использовать опции из стандартного диалога поиска (F7); + простой диалог фильтрации. Версия 1.8.7: * обновлён движок SQLite; + опции фильтрации "Not Contain" (Не содержит) и "Just Not Null" (Только непустые поля). Версия 1.9.0: * обновлён движок SQLite; + добавлена поддержка представлений (VIEW); + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] AddVIEWs=1 - добавлять представления в список таблиц; + диалог настройки (пункт меню Setup...); * разные исправления. Версия 1.9.1: * обновлён движок SQLite; + показ номера текущей записи (включается в настройках); * разные исправления. Версия 1.9.2: * обновлён движок SQLite; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] DatabaseReadOnly=1 - открывать базу данных в режиме только для чтения (по умолчанию 1); * разные исправления. Версия 1.9.3: * исправлено поведение кнопки TAB в главном окне плагина в 64-битном TC; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] SpecialCheckQuery=0 - если база данных открыта в режиме возможности изменения (DatabaseReadOnly=0) и запрос не начинается с "select", то происходит переоткрытие таблицы или базы данных после запроса (по умолчанию 0). Версия 1.9.5: * обновлён движок SQLite; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] FixDateTimeField=1 - попытка правильно показывать поля DATETIME (по умолчанию 1). Версия 1.9.6: * обновлён движок SQLite; + возможность удаления записей если база данных открыта в режиме возможности изменения (DatabaseReadOnly=0). Версия 1.9.6.1: * обновлён движок SQLite; + сортировка имен таблиц (представления сортируются отдельно) (включается в настройках). Версия 1.9.6.2: * исправлена сортировка строк. Версия 1.9.6.3: * обновлён движок SQLite; * разные исправления. Версия 1.9.6.4: * разные исправления. Версия 1.9.6.5: + ограничение на количество записей при загрузке таблицы (включается в настройках); * разные исправления. Версия 1.9.6.6: * BlobAsTextLimit может быть увеличен до 20000 знаков (20..20000, по умолчанию 150). Не рекомендуется устанавливать большие значения!; * StringLengthLimit может быть увеличен до 20000 знаков (20..20000, по умолчанию 255). Не рекомендуется устанавливать большие значения!; * устранена небольшая утечка памяти. Версия 1.9.6.7: + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] FontName= - название шрифта, FontSize= - размер шрифта; * разные исправления. Версия 2.0: * полностью изменено поведение отображения длинных строк и blob-полей в режиме текста; * множество изменений в отображении табличного представления; * при FixDateTimeField=1 дополнительно делается попытка определить дату/время для полей типа DATE и формата REAL; + сортировка по нескольким полям при щелчке по заголовкам с зажатой клавишей Ctrl (снять сортировку можно так же с зажатой клавишей Ctrl); + запись может отображаться в несколько строк; + панель с предпросмотром текста/изображений выбранной ячейки (текст дополнительно проверяется на кодировку UTF8); + простой диалог поиска по Ctrl-F (далее можно искать по F3); + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] CreateFakeFTS=0 - создаёт токены FTS и ICU при открытии базы (только для подавления ошибок в соответствующих таблицах, может приводить к другим ошибкам!); * разные исправления. Версия 2.1: * сортировка с зажатой клавишей Ctrl сейчас происходит после отпускания кнопки Ctrl; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] GetAllRecordsCount=0 - подсчитывать количество записей; GetAllRecordsCountForce=0 - принудительно подсчитывать количество записей в таблице; PacketRecords=-1 - загружать данные пакетами (512 или 1024 рекомендуемый минимум); AskGotoEnd=1 - при пакетной загрузке выдаёт запрос на переход на последнюю запись по Ctrl-End (работает при включении GetAllRecordsCountN); ShowSearchPanel=0 - показывать панель поиска; AllowSearchPanel=0 - разрешить показывать панель поиска по Ctrl-Shift-F; DrawMultilineTextAsEditControl=0 - переносить строки в многострочных полях принудительно (могут быть проблемы отрисовки); CheckFieldIsURL=0 - проверять поля на URL (1-я запись, http:// или https://) при загрузке таблицы; FixDateTimeFieldDefault=0 - по умолчанию поля время/дата будут текстовыми; PreviewRTF=0 - предпросмотр RTF; PreviewDBGraphic=0 - при предпросмотре изображений проверять специальный заголовок (Paradox graphic BLOB); PreviewJPEGScale=1 - предпочитаемый размер JPEG при предпросмотре для ускорения загрузки (0 - как есть, 1 - размер экрана, 2 - половина экрана, 3 - четверть экрана, 5 - 1/8 экрана); * многочисленные исправления. Версия 2.1.1: * изменения в отрисовке чётных и нечётных строк (в Настройках); * в окне просмотра записи Memo заменены на RichEdit; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] * AskGotoEnd=2 - теперь при пакетной загрузке выдаёт запрос на переход на последнюю запись по Ctrl-End вне зависимости от включения опций GetAllRecordsCountN; OldGetData=0 - получение текстовых данных из таблиц как в версиях 1.x (есть в Настройках); GridContrastLines=0 - контрастные разделительные линии в гриде при включенной поддержке Визуальных тем в Windows (есть в Настройках); GridHorizontalLines=1 - горизонтальные разделительные линии вкл/выкл (есть в Настройках); DrawNullText=0 - текст (null) в пустых ячейках (есть в Настройках); GridColor= - цвет грида (по умолчанию Цвет окна); GridDrawFocusRect=1 - стандартная рамка в текущей активной ячейке (есть в Настройках); GridRowHighlight=1 - выделение цветом всей строки (есть в Настройках); * разные исправления. Версия 2.1.1.1: * исправления в отрисовке верхней и нижней панелей при включенной Классической теме Windows; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] * SkipSystemTables=1 - теперь по умолчанию системные таблицы в список не добавляются; AddMasterTable=0 - при отключенной опции SkipSystemTables также добавит в список таблицу sqlite_master; * разные исправления. Версия 2.2 Beta: * обновлён движок SQLite; * базы данных сейчас открываются в реальном режиме "только для чтения", а не просто выполняют "PRAGMA query_only" (DatabaseReadOnly=1 в ini); + простой экспорт в csv, xlsx, html, rtf; + подсветка синтаксиса SQL на вкладке "SQL" окна Table Info; + просмотр следующей/предыдущей записи в окне Record View; * разные исправления. Версия 2.2.1: * при опции CreateFakeFTS=1 сейчас так же создаёт токен FTS5 и активирует модуль csv; * разные исправления. Версия 2.3: * обновлён движок SQLite (3.23.1); * разные исправления. Версия 2.4 Beta: * исправления и улучшения при удалении записей; + фильтрация в колонке по значению ячейки по Alt-Click, снять - Alt-Click по такому же значению в любой колонке или из меню (не совместимо с фильтром панели поиска); + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] AllowColumnFilter=1 - разрешить фильтрацию в колонке по Alt-Click; ExportCsvCommaSeparated=0 - при экспорте в CSV разделитель запятая; ExportCsvTitle=1 - экспортировать заголовки в CSV; ProcessMalformedTables=0 - открывать повреждённые таблицы (может приводить к ошибкам!); OpenEmptyDatabase=0 - открывать базы без таблиц (только при SkipSystemTables=0 и AddMasterTable=1); * разные исправления. Версия 2.4.1 Beta: * исправление ошибок. Версия 2.4.2 Beta: * изменения в извлечении данных из некоторых полей, в частности BLOB; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] * CheckFieldIsURL=0 - теперь количество записей (0-20), поля которых проверяются на URL (http:// или https://) при загрузке таблицы; * FixDateTimeField=1 - попытка правильно показывать поля DATETIME, DATE, TIME, TIMESTAMP: 2 - дополнительные проверки, 3 - как текст (по умолчанию 1); * разные исправления. Версия 2.4.3 Beta: + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] EmptyDefinedType=0 - тип данных поля, для которого тип данных не установлен ("пустой"): 0 - автоматически, 1 - текст, 2 - Blob (есть в Настройках); PreviewTextBlobConvert=0 - дополнительные преобразования данных при конвертации из Blob в текст (есть в Настройках); PreviewTextBlobConvertMaxLen= - максимальный размер данных для конвертации (-1 - без ограничений) (есть в Настройках); * разные исправления. Версия 2.4.3.1: * разные исправления. Версия 2.5: * обновлён движок SQLite (3.26.0); * разные исправления. Версия 2.6: * обновлён движок SQLite (3.27.2). Версия 2.6.0.1: + предпросмотр TIFF с помощью WIC; * разные исправления. Версия 2.6.0.2: + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] DrawTableTypeColors=3 - раскрашивать имена таблиц в списках по типу (сумма значений: 1 - выпадающий список, 2 - список); * разные исправления. Версия 2.6.0.3: * исправления в предпросмотре определённых символов в тексте. Версия 2.6.0.4: * разные исправления. Версия 2.6.0.5: + опция для показа текста в кодировке ANSI в текущей таблице; * разные исправления. Версия 2.6.0.6: * разные исправления. Версия 2.6.1: + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] PreviewFontName= - название шрифта для предпросмотра, PreviewFontSize= - размер шрифта для предпросмотра, PreviewHeight=0 - высота окна предпросмотра (проценты от 10 до 80), RecordViewScrollToField=1 - при просмотре записи пытаться перейти к конкретному полю, ShowOpenError=0 - показывать некоторые ошибки при открытии базы, RereadINI=0 - перечитывать ini при каждом старте плагина; * разные исправления. Версия 2.7 Beta: * обновлён движок SQLite (3.30.1); * разные исправления. Версия 2.7.1 Beta: * диалог фильтра теперь принимает пустые значения; * улучшения показа текста в кодировке ANSI в текущей таблице; + SQLiteViewer.ini для ручной настройки: [SQLiteViewer] OldGetDataAllowConvert=0 - при включенной опции OldGetData разрешает различные преобразования отображаемых данных, например просмотр в ANSI; * разные исправления. Версия 2.8 Beta: * обновлён движок SQLite (3.31.1); * разные исправления. Версия 2.8.1: * исправлено конвертирование blob в текст (регрессия с 2.7.1 Beta); * разные исправления. --- Пожелания и сообщения об ошибках приветствуются! ProgMan13, (ProgMan13@mail.ru)