Создание приложений для субд firebird с использованием различных компонент и драйверов: firedac
Содержание:
- Ссылки и дополнительная информация
- История
- Установка режимов клиент/сервер и встроенного режима сервера
- Основные возможности СУБД
- Навигатор по конфигурации базы 1С 8.3
- Firebird что это за программа?
- Настройка резервного копирования
- Некоторые недостатки FireBird
- Автокликер для 1С
- Набор подсистем «Умные таблицы»
- Версии сервера
- Технология хранения и индексирования
- Характеристики и возможности
- Доступ к базе данных Firebird из YII2
- Соответствие требованиям SQL
- Оптимизация базы DataExpress
Ссылки и дополнительная информация
В списке ниже приведены ссылки на дополнительную информацию о Firebird и связанных с ней инструментах.
Использование Firebird embedded с приложениями FPC/Lazarus
- Примеры исходного кода приложения Lazarus/Firebird
- Учебники Firebird/SQLDB:
- SQLdb Tutorial0
- SQLdb Tutorial1
- SQLdb Tutorial2
- SQLdb Tutorial3
- SQLdb Tutorial4
- Учебники по PP4S; включает установку Firebird на Windows, а также
Инструменты администрирования
- ibconsole : инструмент для управления Firebird и базами данных Interbase с графическим интерфейсом, доступен для Windows и Linux.
- Lazarus Data Desktop — входит в репозиторий Lazarus (находится в каталоге ‘tools/lazdatadesktop/’).
- tiSQLEditor — включен в каталог «Support Apps» репозитория tiOPF. Это инструмент, используемый для написания SQL с некоторой поддержкой автозавершения кода, может запускать сценарии, выполнять сценарии обновления для приложений от одной сборки до более поздней сборки, имеет различные удобные функции копирования и вставки для приложений Object Pascal, имеет много функций, которые полезны для tiOPF (создает шаблоны кода Object Pascal из результатов запросов, для классов посетителей tiOPF), экспортирует результаты запросов в CSV и т.д.
История
Через неделю после того, как Borland выпустила исходный код InterBase 6.0 25 июля 2000 г., на SourceForge был создан проект Firebird . Firebird 1.0 был выпущен для Linux, Microsoft Windows и Mac OS X 11 марта 2002 года с портами на Solaris , , HP-UX в течение следующих двух месяцев.
Работа по переносу кодовой базы с C на C ++ началась в 2000 году. 23 февраля 2004 года была выпущена Firebird 1.5, которая стала первым стабильным выпуском новой кодовой базы. Версия 1.5 включает улучшенный оптимизатор запросов , условные выражения SQL-92 , точки сохранения SQL: 1999 и поддержку явной . Firebird 2.0 был выпущен 12 ноября 2006 года, добавив поддержку 64-битных архитектур, таблиц , вложенных в FROM положений и программируемых замков таймаутов в блокировании операций .
Предыдущим стабильным выпуском была версия 2.1.6, в которой были добавлены новые функции, включая процедурные триггеры , рекурсивные запросы и поддержку операторов MERGE SQL: 2003 .
Firebird 2.5 представил новые функции, такие как улучшенная многопоточность , синтаксис регулярных выражений и возможность запрашивать удаленные базы данных.
Самая последняя стабильная версия — Firebird 3.0, выпущенная 19 апреля 2016 года, с упором на производительность и безопасность. Существенная реорганизация кода позволила полностью поддерживать SMP- машины при использовании версии SuperServer.
В рамках Google Summer of Code 2013 началась работа по интеграции Firebird в качестве замены HSQLDB в LibreOffice .
Конфликт имен Mozilla Firefox
В апреле 2003 г. объявила о переименовании своего веб-браузера с Phoenix в Firebird после спора о товарных знаках с Phoenix Technologies .
Это решение вызвало озабоченность в проекте базы данных Firebird из-за предположения, что пользователи и поисковые системы в Интернете будут сбиты с толку базой данных и веб-браузером, использующим имя Firebird. Разработчики Mozilla выступили с заявлением, в котором разъясняли, что их программный пакет называется «Mozilla Firebird», а не «Firebird». В заявлении также говорится, что название Mozilla Firebird было .
Спор был разрешен 9 февраля 2004 года, когда Mozilla изменила название своего браузера на Mozilla Firefox , что положило конец конфликту.
Установка режимов клиент/сервер и встроенного режима сервера
Firebird может работать в режиме клиент/сервер и в режиме встроенного сервера.
Client/Server означает, что у вас где-то есть физический сервер Firebird: либо на локальной машине, либо на другой машине, доступной по вашей сети. Соединения с сервером проходят через TCP/IP; при указании соединения имя хоста содержит имя или IP-адрес. Серверу Firebird для «общения» с вашими компонентами доступа необходима fbclient.dll/fbclient.so.nnn (вместе с его файлами поддержки).
Embedded Firebird означает, что ваше приложение для доступа к базе данных Firebird на локальной машине загружает единственную библиотеку, которая является и сервером, и клиентской библиотекой Firebird «в одном флаконе». При указании строки соединения имя хоста всегда пусто (не указывается). Серверу Firebird для «общения» с вашими компонентами доступа необходима fbembed.dll/fbembed.so (вместе с его файлами поддержки).
См. вики-страницу на Firebird embedded для более подробной информации.
Обратите внимание, что fbembed.dll может использоваться как для клиент-серверного, так и для встроенного использования, поэтому установка только этой dll может быть разумной задачей.
Прим.перев.: необходимо уточнить, что выше описанное справедливо для версий FB 1.5, FB 2.0, FB 2.1 и FB 2.5. Начиная с версии FB 3.0, режим используемого сервера зависит от строки подключения, а клиентская библиотека на все случаи жизни одна — все та же fbclient.dll/libfbclient.so.3.0.n (где n — номер билда версии FB).
Windows
Win64: пожалуйста, см. предупреждение о нежелательном использовании некоторых версий FPC/Lazarus Win64.
Для Windows: (это относится ко всем драйверам базы данных SQLDB) необходимо иметь fbclient.dll (или fbembed.dll’ ) и его поддержку dll, установленных в:
- каталог проекта и каталог вывода исполняемого файла/каталог приложения (например, lib /что-то еще в каталоге вашего проекта)
- или каталог в вашем PATH (не в системном каталоге)
- Если вы хотите использовать системный каталог, пожалуйста, используйте официальный установщик и поставьте галочку «скопировать fbclient в системный каталог»
Как и для всех библиотек DLL (базы данных), разрядность библиотеки DLL должна соответствовать вашему приложению: используйте 32-разрядную библиотеку для 32-разрядной скомпилированной программы и 64-разрядную библиотеку для 64-разрядной программы.
Unix/Linux/macOS
В Linux/macOS/FreeBSD должна быть установлена клиентская библиотека Firebird (например, вашим менеджером пакетов; установите обычный пакет и пакет -dev), или они должны быть прописаны в путях поиска библиотеки.
FPC ищет наиболее распространенные имена библиотек (например, libfbclient.so.2.5, libgds.so и libfbembed.so.2.5; пожалуйста, проверьте ibase60.inc, если ваша версия отличается). При желании можно указать имя библиотеки. Есть 2 способа сделать это:
- использовать компонент TSQLDBLibraryLoader из sqldblib (FPC 2.7.1). Работает для всех компонентов коннектора SQLDB.
- вызвать функцию
function InitialiseIBase60(Const LibraryName AnsiString) integer;
с правильным именем библиотеки (для этого может потребоваться использовать модуль ibase60dyn).
Основные возможности СУБД
Firebird полностью поддерживает стандартны ANSI в синтаксисе языка SQL и может работать под управлением многих операционных систем — Windows, Linux, MacOS, Solaris и различных Unix-платформах. Среди достоинств этой системы использование очень развитого языка для хранимых процедур и триггеров. Предшественник Firebird, СУБД Interbase использовалась в информационных системах начиная с 1981 года.
Firebird это свободный проект, поддерживаемый многими программистами и специалистами из других областей по всему миру. Его начало было положено 25 июля 2000 года, когда корпорация Inprise Corp (ныне известная как Borland Software Corp) открыла исходные коды своей СУБД Interbase, которая использовалась в различных информационных системах начиная с 1981 года.
Firebird полностью бесплатна, она не требует ни регистрации, ни оплаты за поддержку. Исходный код этой системы открыт и любой желающий может разрабатывать на его базе собственные некоммерческие проекты, при условии соблюдения требований лицензии IDPL, по которой распространяется Firebird.
Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах.
Firebird основан на исходном коде InterBase 6.0 который был выпущен как Open Source компанией Borland в августе 2000 года. История Interbase начинается в 1984 году, таким образом, продукт является наследником более чем 20-летнего опыта работы с реляционными базами данных
В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.
Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland 25 июля 2000 года в виде свободной версии Interbase 6.0.
Firebird является сервером баз данных. Один сервер Firebird может обрабатывать несколько сотен независимых баз данных, каждую с множеством пользовательских соединений. Он является полностью свободным от лицензионных отчислений даже для коммерческого использования.
Среди недостатков: отсутствие кэша результатов запросов, полнотекстовых индексов.
Навигатор по конфигурации базы 1С 8.3
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3.
Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д.
Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы.
Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами».
Платформа 8.3, управляемые формы. Версия 1.1.0.69 от 27.09.2020
3 стартмани
Firebird что это за программа?
- 1 Firebird. Что НЕ надо делать
- 1.1 Не надо логиниться к одной базе с разными путями
- 1.2 Не надо выбирать на клиента большие обьемы данных
- 1.3 Не надо получать новый номер путем SELECT MAX(ID)+1
- 1.4 Не надо устанавливать значения генераторов (например в 0) внутри процедур и тем более триггеров
- 1.5 Не надо делать большие расчеты в одной транзакции
- 1.6 Не надо делать PageSize = 1024 или 2048
- 1.7 Не надо делать коммит после каждой записи, если это не требуется по смыслу
- 1.8 Не надо делать commit после вставки каждой записи, если вы их вставляете больше 10 за один раз
- 1.9 Не надо увлекаться ссылочной целостностью больше чем это требуется
- 1.10 Не создавайте ненужные индексы
- 1.11 Не стройте индексы по полям, содержащим наименьшее количество разных значений
- 1.12 Не стройте индексы по полям PK, FK, UNIQUE
- 1.13 Не рекомендуется увлекаться outer join
- 1.14 Не рекомендуется использовать связку «таблица+ХП»
- 1.15 Не рекомендуется употреблять подзапросы в списочном контексте, то есть in (…), =all(…), =some(…)
- 1.16 Не надо увлекаться компонентом TTable и аналогичными
- 1.17 Нельзя создавать триггеры с именами вроде CHECK_xxx
- 1.18 Не рекомендуется создавать свои объекты с префиксом RDB$
- 1.19 Не рекомендуется создавать роль (role) с именем любого из существующих пользователей
- 1.20 Не надо использовать тип FLOAT
- 1.21 Не используйте маски (*.gdb) для gbak!!!
- 1.22 Не создавайте столбцы с одинаковыми именами но в разном регистре в третьем диалекте
- 1.23 Не надо копировать базу обычной файловой командой (операцией) copy в то время, когда сервер работает с базой
- 1.24 Не надо делать restore (gbak -r) поверх существующей базы данных
- 1.25 Ни в коем случае не меняйте во время работы доменное имя сервера
- 1.26 Нельзя в одной транзакции менять медаданные и тут же выполнять запросы, которые используют эти метаданные
- 1.27 Не нужно смешивать в одном запросе синтаксис явных и неявных JOIN
- 2 Характеристики программы для работы с базами данных Firebird
- 3 Firebird – что это за программа и как с ней работать
Добавил admin | Категория Наши материалы | 12 Августа 2014
Не надо логиниться к одной базе с разными путями
В этом случае очень вероятно повреждение базы вплоть до ее полного уничтожения. Т.е. не надо использовать link-и на файлы и каталоги БД в unix, и не надо ошибаться и под win писать путь коннекта как c:dir\data.gdb вместо правильного c:\dir\data.gdb.этот совет не относится к разным именам одного и того же сервера в строке коннекта.
Настройка резервного копирования
Давайте теперь настроим резервное копирование. Резервные копии будем хранить в папке backups. Каждая копия будет иметь префикс из даты и времени. Создаем папку:
mkdir /home/user/backups
Резервное копирование выполняется утилитой gbak, входящей в состав Firebird. Чтобы было удобнее пользоваться командой резервного копирования, создадим небольшой скрипт:
nano /home/user/backup.sh
Сам скрипт:
#!/sbin/bash filename=`date +%y%m%d_%H%M%S_mybase` gbak -b -g /home/user/mybase.fdb /home/user/backups/$filename.fbk -v -y /home/user/backups/$filename.log -user SYSDBA -pass masterkey
В переменной filename хранится команда date, которая возвращает строку в формате ГодМесяцДень_ЧасМинСек_mybase. Утилита gbak выполняет резервное копирование (ключ -b), ключ -g запрещает сборку мусора. Это позволяет ускорить резервное копирование. Далее идут путь к файлу базы и путь к резервной копии. Ключ -v включает полное протоколирование процесса, а -y определяет, где будет создан лог.
Запустите скрипт и убедитесь, что резервная копия создается:
. /home/user/backup.sh ls /home/user/backups
Процесс резервного копирования можно автоматизировать планировщиком cron. Он будет запускать резервное копирование по расписанию. Добавим новое задание в планировщик.
nano /etc/crontab
Добавим в этот файл строчку:
0 12 * * * root . /home/user/backup.sh
Она обозначает запускать наш скрипт каждый день в 12:00. Сохраняем изменения. И на этом наша настройка заканчивается. Ну и пару строчек как можно восстановить базу из резервной копии:
mv /home/user/mybase.fdb /home/user/oldbase.fdb gbak -c /home/user/backups/mybase.fbk /home/user/mybase.fdb -user SYSDBA -pass masterkey
Перед восстановлением убедитесь, что к базе нет подключений. Нельзя выполнять восстановление из резервной копии на текущую базу. Поэтому переименовываем файл базы, а затем запускаем команду. В процессе из резервной копии будет создана новая база данных. Если восстановление было успешно, старую базу можно удалить.
rm /home/user/oldbase.fdb
Некоторые недостатки FireBird
По сравнению со своими аналогами приложение имеет несколько недостатков:
- Отсутствие кэша, что мог бы сохранить результаты запросов.
- Производительность зависит от фрагментации базы.
Эта платформа все время развивается, и недостатки сводятся к минимуму. Следует отметить положительные моменты.
Положительных моментов намного больше, чем отрицательных:
- Можно заносить данные на любой носитель с примечанием «только для чтения.» Таким образом невозможно внести в базу данных какие-либо дополнения.
- Резервное копирование упростилась. Для этого не нужно останавливать сервис.
- База данных сохраняется в автоматическом режиме после запуска системы.
- Утилита может поддерживать много символов. Появилась возможность назначать одновременно большое количество триггеров для любых таблиц.
- Переход между операционными системами.
- Появились генераторы, что выступают в роли счетчиков. Они работают в автоматическом режиме.
- Программа выполняет одновременно несколько операций в пределах одного клиентского приложения.
Firebird является центром управления базы данных. Используют эту программу в основном в сельскохозяйственной и промышленной сферах. Один сервер такой утилиты имеет возможность обработать большое количество информации, связанной с каким-либо коммерческим или промышленным предприятием.
Главные характеристики FireBird:
- Соответствует стандартам ACID.
- Сервер обрабатывает множество версий одной и той же записи.
- Создание сложных хранимых процедур.
- Активен генератор событий.
- Создание баз только для чтения.
- Контролирование транзакций в пределах одного сервера.
- Возможность резервного копирования любой информации.
- Триггеры.
- Создание библиотек на различных языках и простое подключение к серверам в формате DLL/SO.
Также приложение дает возможность продуктивно записывать многоуровневые отношения между разными видами таблиц. Набор символов достаточно широкий и включает в себя международные символы и различные виды сортировки.
Автокликер для 1С
Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.
1 стартмани
Набор подсистем «Умные таблицы»
Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.
1 стартмани
Версии сервера
Релиз Firebird 1.0 — это первая версия (ноябрь 2001 года), базирующаяся на открытых исходных текстах InterBase 6.0. Поэтому в основном релиз содержит большое число исправлений ошибок IB 6.0.
- Расширенные проверки зависимостей (udf и генераторы)
- Убраны проблемы с размером файла БД более 4 гигабайт (кроме FAT16 и FAT32, где файл не может быть больше 2-4 гигабайт)
- Поддержка размера страницы БД 16 килобайт
- ForcedWrites теперь ON по умолчанию при создании БД
- Параметр конфигурации для задания расположения внешних файлов
- Увеличено количество внешних файлов, открываемых одновременно
- Внешний файл закрывается, если внешняя таблица удаляется
- Добавлен параметр CPU_Affinity (Superserver)
- Возможность указания номера порта в строке коннекта
- параметр NONAGLE для Linux
- расширения isc_info_database
- счетчик записей для gbak (при указании опции -v)
- переменные CURRENT_USER и CURRENT_ROLE
- команда DROP GENERATOR
- возможность группировки по UDF (group by <function>)
- команда RECREATE PROCEDURE
- команда RECREATE TABLE
- опции SELECT FIRST (<int>) SKIP (int) …
- функция SUBSTRING(<str> FROM <pos> )
- команда PLANONLY для ISQL
- новый маркер комментариев —
- расширения ib_udf (SUBSTR, SUBSTRLEN, ASCII_CHAR)
- новый набор функций FBUDF.DLL
- by descriptor в параметрах UDF
Технология хранения и индексирования
Multi-Generational Architecture (MGA)
Firebird унаследовала архитектуру хранения Interbase. Для обеспечения ACID-свойств транзакций, механизм работы базы данных хранит различные версии каждой записи, изменённой активными пользователями в базе данных. После завершения транзакции, последняя версия каждой измененной записи помечается как окончательная. В случае отката транзакции, базы данных оставляет отметку на оригинальной версии записи, оставляя данные нетронутыми. В результате этого, количество записей на диск с использованием Firebird сильно уменьшено по сравнению с базами данных, использующими традиционную архитектуру журнала транзакций. Запись транзакций не препятствует чтению и наоборот, потому что каждый пользователь видит свою собственную версию базы данных. Компромисс заключается в том, время от времени требуется удаление старых версий записей и для освобождения дискового пространства.
Multi-Generational Architecture (архитектура с несколькими поколениями) обеспечивает одновременное выполнение операций OLTP и DSS / OLAP без задержек, которые вызывают механизмы блокировки, используемые в других продуктах.
Индексы
В Firebird все индексы базы данных ведут себя как хорошо настроенные «кластерные индексы», используемые другими архитектурами. Индексы Firebird не являются объектами двухфазной блокировки, в следствие чего логические операции «и» и «или» могут выполняться на промежуточных этапах с незначительной стоимостью, исключая необходимость выбора оптимизатором альтернативных индексов.
Характеристики и возможности
Разберем подробнее, на что способна программа.
Основные особенности:
Открытый код | Программу можно использовать бесплатно как для приложений с открытым кодом, так и для коммерческих целей. |
Малый вес | Firebird не занимает много места на жестком диске. При этом, она работает с базами в сотни раз превышающими ее размер. |
Распространенность | Firebird собрала вокруг себя сообщество энтузиастов. В любой момент пользователи получают актуальную информацию о ее работе. |
Построение баз данных в режиме «только для чтения» | СУБД может распространять данные на съемных носителях. |
Копирование «на лету» | При резервном копировании не нужно останавливать работу сервера. Технология копирования предполагает сохранение базы в момент создания копии. Процесс не мешает работе сервера. |
Преимущества СУБД:
- софт совместим со всеми актуальными ОС;
- не требует настройки и отладки. Запускается непосредственно после установки;
- работает в автоматическом режиме;
- расширение функций за счет внешнего функционала;
- установщик не занимает много места;
- поддерживаются хранимые процедуры и триггеры;
- записи различных версий обрабатываются параллельно с остальными;
- триггеры создаются на SQL;
- нет необходимости в участии системных администраторов;
- поддержка широкого набора языков кодировки.
Не обошлось без минусов. Среди основных такие:
- Отсутствует кэш. Не отслеживается история запросов.
- Замедление работы с увеличением внутренней фрагментации базы.
Доступ к базе данных Firebird из YII2
Из песочницы
Так получилось, что мне понадобилось переносить интерфейс пользователя из связки Delphi + Firebird в WEB. Дабы не останавливать работу комплекса программ, решено было переносить формы постепенно, а для этого необходимо сохранить работу СУБД Firebird и подключаться к ней из web приложения. При разработке web-приложения я решил использовать фреймворк YII2. На этапе разработки мне не нужен полноценный HTTP сервер, вполне сойдет Denwer или XAMMP, или что-то еще. Я выбрал XAMMP т.к. в Денвере давно не обновляется версия PHP, а руками заниматься его обновлением не хочется, идем по пути наименьшего сопротивления. Изначально ни в XAMMP PHP, ни в YII2 нет возможности работать с СУБД Firebird, но при определенных танцах с бубном сделать это вполне реально. Итак, я буду полагать, что у Вас уже установлены: Windows 7 x64, XAMMP и YII2, Firebird 2.5.
Пути установки пакетов у меня (для себя вводите соответствующие корректировки):
- Firebird 2.5 версия x64 (тип сервера значения не имеет) в C:\Program Files\Firebird\Firebird_2_5\
- XAMMP установлен в D:\xampp\
- YII2 установлен в D:\xampp\htdocs\yii\
- БД расположена в пути D:\WORK\database\TBOT.GDB
Теперь можно начинать.
Соответствие требованиям SQL
Эта программа имеет возможность в полной мере поддерживать SQL-92 Entry Level. Таким образом доступен любой запрос и появляется возможность пользоваться встроенными функциями. Реализация ограничения проверок в доменных полях реализуется также с помощью этой утилиты.
Необходимо учесть, что скорость и качество памяти имеет непосредственное отношение к производительности. Эта утилита может воспроизводиться многими платформами, которые связаны между собой легкими переходами. Также для работы с сервером не обязательно использовать слишком мощное оборудование.
Какими операционными системами лучше пользоваться
В наше время последние сервера разработаны лишь для 32 и 64-разрядных версий Windows, Linux и MacOS X. Можно легко переходить из одной операционной системы в другую. При этом копируется база данных в одной системе и воспроизводится в другой.
Оптимизация базы DataExpress
Скорость передачи данных в сети Интернет значительно ниже, чем в локальной сети. Если до этого вы работали с базой в локальной сети, а затем перешли в Интернет, то вы сразу заметите задержки.
- Первым делом нужно уменьшить размер текстовых полей до необходимого минимума. Если вы меняете размер полей в уже рабочей базе, то после изменения размера полей сделайте процедуру резервного копирования / восстановления, чтобы сжать базу и очистить ее от мусора. Также не меняйте размер большому количеству полей, т. к. это может привести к очень долгому сохранению изменений. При изменении размера поля DataExpress на самом деле создает новое поле и копирует содержимое старого поля в новое, старое поле затем удаляется. Поэтому размер базы после такой операции не уменьшается, а наоборот увеличивается.
- Старайтесь избегать интенсивного использования функций DB в выражениях и вычисляемых полях запросов.
- При открытии формы, программа читает данные всех полей, в том числе изображения и файлы, хранимые в базе (миниатюры изображений всегда хранятся в базе). Если изображения и файлы хранятся в базе, то это может привести к значительному замедлению чтения данных из базы. В этом случае имеет смысл создавать простую форму и запрос для выборки данных из нужной формы, или использовать отчет.
- Чтение подчиненных данных формы (таблиц и запросов) тоже может сильно замедлять работу. В этом случае тоже имеет смысл создавать простую форма + запрос или использовать отчет.