1. Создать временную таблицу
Ввод данных является неизбежной ссылкой в разработке программ баз данных. В структуре клиента/сервера клиент может ввести партию данных, прежде чем отправлять его в бэкэнд -базу данных сервера , очистить данные после отправки. Преимущества этого метода: повысить эффективность ввода и уменьшить сетевую нагрузку.
Поскольку объем данных, введенных пользователем за раз, обычно невелик (не более нескольких сотен записей), в памяти могут быть встроены временные таблицы, что делает обработку быстрее.
Метод 1: Используйте контроль запроса (TQUERY)
Шаг 1: Поместите контроль запроса (TQUERY) на форму и установите таблицу подключенных данных.
Шаг 2: Сделайте TQUERY.
TQUERY
Шаг 3: Добавьте место, где после исходного оператора SQL, и попросите, чтобы результат запроса SQL был пуст после добавления этого, где пособия.
Например:
Выберите Biolife. ″ Виды no ″, категория, common_name, biolife. ″ Название видов ″, biolife. ″ Длина (см) ″, длина, примечания, графики
От ″ biolife.db ″ biolife
где biolife.category = ′ a ′ и biolife.category = ′ b ′
Таким образом, временная таблица установлена.
Метод 2: Создать временные таблицы с использованием кода
Код заключается в следующем:
Функция CreatebleAbleInmemory (const AfieldDefs: tfieldDefs): tdataset;
вар
Соблазненный: tclientdataset;
Начинать
Соблазн: = nil;
Результат: = NIL;
Если Afielddefs $#@60; $#@62; Nil Then
Начинать
пытаться
Соблазн: = tclientDataset.create (приложение);
Temptable.fielddefs.assign (Afielddefs);
Соблазн. CreateDataset;
Результат: = (соблазную как tdataset);
Кроме
Если соблазнение $#@60; $#@62; Nil Then
Соблазн.
Результат: = NIL;
поднимать;
конец
конец
конец;
В программе используйте его следующим образом:
Процедура tform1.button1click (отправитель: tobject);
вар
Adataset: tdataset;
Начинать
Adataset: = tdataset.create (self);
с adataset.fielddefs
Начинать
Add ('name', ftstring, 30, false);
Добавить (′ UE ′, ftinteger, 0, false);
конец;
с DataSource1 DO
Начинать
DataSet: = CreateBableInmemory (adataset.fielddefs);
DataSet.Open;
конец;
Adataset.free;
конец;
Временное создание таблицы завершено.
Метод 1 прост в использовании, но поскольку управление запросом используется для запроса базы данных бэкэнд сервера при очистке данных, скорость немного медленнее, и он не подходит для ситуаций, когда каждое поле во временной таблице соединено несколькими данными. Таблицы полей. Метод 2 имеет широкий спектр приложений и быстрой скорости, но требует написания кода. (Метод использования TfieldDefs в коде очень прост, см. Онлайн -помощь Delphi).
2. Настройте механизм данных (BDE, SQL Link)
При распределении программ баз данных вам необходимо переносить механизм данных (BDE, SQL Link), а после того, как клиент установит программу, вам также необходимо настроить механизм данных, такой как имя пользователя, пароль (пароль) и т. Д. Если настройка вручную, рабочая нагрузка относительно большая (в зависимости от количества клиентов).
[Идапи псевдоним]
использует name = sysdba
пароль = мастер
После установки программы двигатель данных автоматически настроен.
3. Используйте функции в межбаз -базе данных
Программисты могут чувствовать себя неудобными (только четыре) при использовании интербазы в качестве фоновой базы данных, когда они предоставляют слишком мало функций (всего четыре) и не могут легко записать сложные хранимые процедуры. Сама интербаза не может записать функции, но она может использовать внешние функции (называемые функциями в DLL). В следующем примере показано, как объявить функцию субстрата в межбазе.
Объявите подстраль внешней функции
Cstring (80), Smallint, Smallint
Возвращает Cstring (80)
Inpit_point ″ ib_udf_substr ″ module_name ″ ib_udf ″
Где: module_name - это имя DLL, а intry_point - это имя функции.
Это может быть использовано после объявления, например:
Выберите substr (страна)
из страны
В этом примере используется Iblocal Database, которая поставляется с установкой Delphi. Пользователи также могут писать функции сами для расширения межбазы. Для получения дополнительного контента, пожалуйста, смотрите темы статьи, связанные с базой данных, или