Delphi 3 и создание приложений баз данных

Компонент Tdatabase


204

глава 25

25. Оператор SELECT

25.1. Простейший вид оператора SELECT *

25.2. Использование предложения WHERE *

25.2.1. Сравнение значения столбца с константой *

25.2.2. Сравнение значения столбца из одной таблицы со значением столбца из другой таблицы (внутреннее соединение) *

25.3. Использование псевдонимов таблиц *

25.4. Предложение ORDER BY - определение сортировки *

25.5. Устранение повторяющихся значений *

25.6. Расчет значений результирующих столбцов на основе арифметических выражений *

25.7. Агрегатные функции *

25.8. Использование группировок записей *



25.9. Предложение HAVING - наложение ограничений на группировку записей *

25.10. Предложение WHERE : задание сложных условий поиска *

25.10.1. Использование логических выражений *

25.10.2. Сравнение столбца с результатом вычисления выражения *

25.10.3. Использование BETWEEN *

25.10.4. Использование IN (список значений) *

25.10.5. Использование STARTING *

25.10.6. Использование CONTAINING *

25.10.7. Использование функции UPPER *

25.10.8. Использование LIKE *

25.10.9. Использование функции CAST *

25.11. Использование подзапросов *

25.12. Вложение подзапросов *

25.13. Дополнительные возможности использования подзапросов, возвр единичное значение *

25.13.1. Использование EXISTS *

25.13.2. Использование SINGULAR *

25.14. Использование подзапросов, возвращающих множество значений *

25.14.1. Использование ALL, SOME *

25.14.2. Использование HAVING и агрегатных функций для вложенных подзапросов *

25.15. Внешние соединения *

25.16. UNION - объединение результатов выполнения нескольких операторов SELECT *

25.17. Использование IS NULL *

25.18. Использование операции сцепления строк *

25.19. Работа с разными БД в одном запросе *

глава 26 26. Добавление, изменение, удаление записей

26.1. Оператор INSERT *

26.1.1. Явное указание списка значений *

26.1.2. Указание значений при помощи оператора SELECT *

26.2..0ператор UPDATE *

26.3. Оператор DELETE *

глава 27 27. Работа с просмотрами VIEW

27.1. Понятие просмотра как виртуальной таблицы *

27.2. Способы формирования просмотров *

27.3. Указание столбцов просмотра в операторе CREATE VIEW *

27.4. Обновляемые и необновляемые просмотры *

27.5. Использование CHECK OPTION *

27.6. Компоненты Delphi и использование просмотров *

глава 28

28. Работа с хранимыми процедурами

28.1. Понятие хранимой процедуры *

28.2. Создание хранимой процедуры *

28.3. Алгоритмический язык хранимых процедур *

28.3.1. Объявление локальных переменных *

28.3.2. Операторные скобки BEGIN... END *

28.3.3. Оператор присваивания *

28.3.4. Оператор IF... THEN ... ELSE *

28.3.5. Оператор SELECT *

28.3.6. Оператор FOR SELECT... DO *

28.3.7. Оператор SUSPEND *

28.3.8. Оператор WHILE... DO *

28.3.9. Оператор EXIT *

28.3.10. Оператор EXECUTE PROCEDURE *

28.3.11. Оператор POST_EVENT *

28.4. Вызов процедур выбора в приложении клиента *

28.5. Обращение к процедурам действия. *

28.6. Изменение и удаление хранимых процедур *

глава 29 29. Работа с триггерами

29.1. Создание триггеров *

29.2. Определение заголовка триггера *

29.3. Значения OLD и NEW *

29.4. Обеспечение каскадных воздействий *

29.5. Ведение журнала изменений *

29.6. Использование триггеров для реализации бизнес-правил *

29.7. Изменение и удаление триггеров *

глава 30 30. Использование генераторов *

глава 31

31. Использование утилиты Database Explorer

31.1. Просмотр метаданных *

31.2. Работа с таблицами *

31.2.1. Просмотр и изменение данных *

31.2.2. Просмотр столбцов *

31.2.3. Просмотр ограничений на значения столбцов *

31.2.4. Просмотр индексов *

31.2.5. Просмотр триггеров *

глава 32 32. Транзакции

32.1. Откат изменений и целостность БД *

32.2. Понятие транзакции *

32.3. Уровни изоляции транзакций: приложение клиента *

32.3.1. Уровень изоляции транзакций Dirty Read *

32.3.2. Уровень изоляции транзакций Read Commited *

32.3.3. Уровень изоляции транзакций Repeatable Read *

32.3.4. Установка уровней изоляции транзакций в Delphi *

32.4. Свойство UpdateMode и обновление записей *

32.5. Явно и неявно стартуемые транзакции *

32.6. Управление транзакциями на SQL-сервере InterBase *

глава 33 33. Кэшированные изменения

33.1. Использование кэшированных изменений *

33.2. Активизация режима кэшированных изменений *

33.3. Отмена кэшированных изменений *

33.4. Подтверждение кэшированных изменений *

33.4.1. Подтверждение кэшированных изменений методом ApplyUpdates компонента TDatabase *

33.4.2. Подтверждение кэшированных изменений методом ApplyUpdates набора данных *

33.5. Видимость измененных записей *

33.6. Обработка ошибок. Обработчик события OnUpdateError *

33.6.1. Использование обработчика OnUpdateError *

33.6.2. Использование параметра UpdateKind *

33.6.3. Использование параметра UpdateAction *

33.6.4. Использование параметра Е *

33.7. Компонент TUpdateSQL *

33.7.1. Использование компонента TUpdateSQL *

33.7.2. Компонент TUpdateSQL: этап разработки *

33.7.3. Компонент TUpdateSQL: выполнение SQL-операторов *

глава 34 34.Работа с событиями

34.1. Понятие события *

34.2. Приложения Delphi и компонент TIBEventAlerter *

34.3. Использование компонента TIBEventAlerter для обработки событий сервера БД в клиентском приложении *

34.4. Обмен сообщениями между приложениями *

34.5. Обмен инициализирующими сообщениями между приложениями *

глава 35 35. Функции, определяемые пользователем

35.1. Понятие функции, определяемой пользователем *

35.2. Разработка DLL и UDF в Delphi *

35.2.1. Общие положения *

35.2.2. Совместимость типов параметров *

35.2.3. Особенности использования в UDF параметров типа PChar *

35.2.4. Особенности использования в UDF параметров типа даты и времени *

35.3. Объявление UDF в БД InterBase *

35.4. Пример создания DLL с несколькими UDF и объявления их в БД *

глава 36 36. Определение бизнес-правил

36.1. Размещение бизнес-правил *

36.2. Реализация бизнес-правил на сервере *

36.2.1. Ограничения значения столбца записи *

36.2.2. Запрет добавления записей в просмотре *

36.2.3. Использование триггеров для поддержания ссылочной целостности *

36.3. Реализация бизнес-правил в приложении клиента *

36.3.1. Реализация бизнес-правил в компонентах типа "набор данных" *

36.3.2. Свойство Constrained (компонент TQuery) *

36.3.3. Свойство Constraints *

36.3.4. Реализация бизнес-правил в компоненте TField *

36.3.5. Реализация бизнес-правил в иных компонентах *

36.4. Использование словаря данных для определения атрибутов полей *

глава 37

37. Оптимизация работы с БД

37.1. Оптимизация структуры БД *

37.1.1. Нормализация таблиц: теория и практика *

37.1.2. Частичная зависимость структуры данных от методов доступа к ним *

37.1.3. Физические характеристики БД *

37.2. Оптимизация запросов *

37.2.1. Оптимальная структура индексов *

37.2.2. "Полезность" индексов *

37.2.3. Просмотр плана выполнения запросов *

37.2.4. Целесообразность создания индексов *

37.2.5. Частичное использование составного индекса *

37.2.6. Многопоточность поиска по OR и IN *

37.2.7. Уменьшение общего количества индексов *

37.3. Оптимизация клиентских приложений *

37.3.1. Минимизация соединений с БД *

37.3.2. Использование TQuery *

37.3.3. Перенос тяжести вычислительной работы на сервер *

глава 38 38. Работа с утилитой InterBase Server Manager

38.1. Соединения *

38.1.1. Соединение с сервером *

38.1.2. Соединение с БД *

38.1.3. Выбор текущего сервера и БД *

38.1.4. Разрыв соединения *

38.2. Изменение конфигурации сервера *

38.3. Сбор статистики о БД *

38.3.1. Статистические данные непосредственно о БД *

38.3.2. Анализ БД *

38.4. Принудительная сборка мусора *

38.5. Создание резервной копии (сохранение) и восстановление БД *

38.5.1. Переход в однопользовательский режим соединения с БД *

38.5.2. Резервное копирование БД *

38.5.3. Восстановление БД из резервной копии *

38.6. Принудительная запись на диск *

38.7. Восстановление транзакций *

38.8. Регистрация новых пользователей *

глава 39 39. Установка привилегий доступа 39.1. Привилегии доступа по умолчанию * 39.2. Виды привилегий * 39.3. Минимальный состав параметров при предоставлении привилегий доступа к таблице БД * 39.4. Предоставление нескольких привилегий * 39.5. Предоставление привилегий нескольким пользователям * 39.6. Назначение привилегий всем пользователям * 39.7. Установка привилегий доступа к отдельным столбцам таблицы * 39.8. Предоставление пользователю права назначать привилегии другим пользователям * 39.9. Назначение привилегий вызова хранимых процедур * 39.10. Назначение процедуре прав доступа к таблице * 39.11. Ликвидация привилегий * приложение А Свойства, методы, события.

Компонент TDataBase *

Компонент TDBChart *

Компонент TDBCheckBox *

Компонент TDBComboBox *

Компонент TDBCtriGrid *

Компонент TDBEdit *

Компонент TDBGrid *

Компонент TDBListBox *

Компонент TDBLookupComboBox *

Компонент TDBMemo *

Компонент TDBRadioGroup *

Компонент TDBRichEdit *

Компонент TDBText *

Компонент TDecisionCube *

Компонент TdecisionGrid *

Компонент TDecisionPivot *

Компонент TDecisionSource *

Компонент TField *

Компонент TIBEventAlerter *

Компонент TQuery *

Компонент TQRBand *

Компонент TQRExp *

Компонент TQRGroup *

Компонент TQRSubDetail *

Компонент TQRSysData *

Компонент TQuickRep *

Компонент TChartSeries *

Компонент TSession *

Компонент ТТаblе *

Компонент TUpdateSQL *

приложение B

Формат SQL-операторов (СУБД InterBase)

База данных *

Создание базы данных *

Определение типа данных *

Домены *

Создание домена *

Ограничение, накладываемое на значения полей, ассоциированных с доменом *

Изменение определения домена *

Таблицы базы данных *

Определение первичного ключа *

Определение уникального ключа *

Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей *

Ограничения на значения столбца *

Добавление нового столбца в таблицу БД *

Добавление новых ограничений целостности *

Удаление столбца (столбцов) из таблицы БД *

Удаление ограничений целостности *

Удаление таблицы БД целиком *

Индексы *

Создание индекса *

Деактивизация индекса *

Активизация индекса *

Вычисление показателя "полезности" индекса *

Удаление индекса *

Выборка данных из таблиц БД *

Изменение данных *

Добавление записей *

Изменение записей *

Просмотры *

Создание просмотра *

Удаление просмотра *

Хранимые процедуры *

Создание хранимой процедуры *

Обращение к хранимой процедуре (утилита WISQL) *

Тело процедуры *

Изменение хранимой процедуры *

Удаление хранимой процедуры: *

Алгоритмический язык триггеров и хранимых процедур *

Объявление локальных переменных *

Оператор присваивания *

Условный оператор *

Оператор выбора SELECT *

Оператор циклической выборки *

Принудительная выдача выходных параметров (только хранимые процедуры) *

Оператор цикла *

Выход из процедуры, триггера *

Вложенный вызов другой хранимой процедуры *

Инициация наступления события *

Обращение к старому и новому значениям столбца (только триггеры) *

Триггеры *

Создание триггера *

Структура тела триггера *

Изменение существующего триггера *

Удаление триггера *

Генераторы *

Создание генератора *

Установка стартового значения генератора *

Транзакции *

Старт транзакции *

События *

Инициация наступления события *

UDF (Функции, определяемые пользователем) *

Объявление UDF (функций, определяемых пользователем) в базе данных *

Привилегии доступа *

Предоставление привилегий доступа к таблицам БД, просмотрам, вызовам процедур *

Отъем привилегий *


Компонент TDataBase создается для каждого факта соединения сессии с отдельной БД Если для факта конкретного соединения в приложении не предусмотрен компонент TDatabase, создается временный компонент TDatabase Таким образом, каждая открытая БД имеет свой компонент TDataBase. Список активных БД данной сессии содержится в коллекции TSession Databases, каждый элемент которой имеет тип TDatabase. Число активных БД сессии определяется через свойство TSession DatabaseCount.

Случаи явного использования в приложении компонента TDatabase чаще всего связаны с работой в архитектуре "клиент-сервер". Явно определенный в приложении компонент TDatabase позволяет управлять БД, создавая постоянные соединения с БД, настраивая сеанс соединения с сервером, управляя транзакциями и создавая локальные псевдонимы BDE в приложении.

Несомненно, каждый набор данных, работающий с таблицами одной и той же БД, может иметь с этой БД отдельное соединение. Однако это нерационально, поскольку на каждое соединение затрачиваются системные ресурсы Для минимизации их использования рекомендуется в приложении создавать единственное соединение с удаленной БД при помощи компонента TDatabase, a все наборы данных и компоненты, реализующие действия над БД, соединять с компонентом TDatabase.

Свойство property AliasName: TSymbolStr; указывает псевдоним BDE, ассоциированный с данным компонентом TDatabase. Если заполнено свойство DnverNawe, значение свойства A liasName очищается.

Свойство property DatabaseName: TFileName; определяет локальный псевдоним приложения, который может использоваться при доступе к БД вместо псевдонима BDE, пути к файлам БД или имени БД. Именно значение, определяемое данным свойством, показывается в выпадающем списке свойства DatabaseName компонентов TTab/e, TQuery и TSforedProc при разработке приложения.

Свойства соединения компонента TDatabase с удаленной БД определяются:

• параметрами псевдонима БД;

• параметрами драйвера БД (например, InterBase);

• общесистемными установками в утилите BDE Administrator.

Эти установки могут изменяться во время разработки приложения в редакторе базы данных. Для этого нужно в приложении выбрать при помощи мыши компонент TDatabase, щелкнуть по нему правой кнопкой мыши и во всплывающем меню выбрать элемент Database Editor. В диалоговом окне редактора БД (рис. 24.1) в поле Parameter overrides можно переустановить параметры псевдонима БД и драйвера.

Для того чтобы вернуться к параметрам псевдонима, принятым по умолчанию, нужно нажать кнопку Defaults (результат на рис. 24.2).

Не рекомендуется явно указывать значение параметра SERVER NAME, например

SERVER NAME=D:\BOOK\IB_SKLAD\Ib_sklad.gdb

поскольку при изменении местонахождения БД придется изменять значение пути и в параметрах компонента TDatabase (вместо того, чтобы изменить путь к БД в определении псевдонима в утилите BDE Administrator).

На панели Options имеется два поля. Снятие отметки с поля Login Prompt приводит к тому, что диалог запроса имени пользователя и пароля не выдается. В этом случае имя пользователя и пароль можно указать в параметрах соединения (в поле Parameter), например

USER NAME=SYSDBA

PASSWORD=masterkey

Отметка поля Login Prompt равносильна присваиванию значения True свойству

property LoginPrompt: Boolean;

Это свойство определяет, выдавать ли при первом соединении с БД окно ввода имени пользователя и пароля, или же они должны быть указаны в свойстве Params.

Другое поле отметки на панелях Options, Keep Inactive Connection в отмеченном состоянии означает, что соединение с БД будет храниться даже в случае, если ни один набор данных в приложении, работающий с этой БД, не открыт. Отметка поля аналогична установке в True свойства

property KeepConnection: Boolean;

указывает, следует ли хранить соединение с БД, если нет связанных с ней открытых НД.

Свойство property Connected: Boolean; в значении True указывает, имеет ли компонент TDatabase активное соединение с БД.

Свойства соединения с БД могут быть переустановлены во время работы приложения. Для этого используется синтаксис доступа к конкретному параметру как к элементу компонента TStrings свойства

property Params: TStrings;

когда название параметра выступает в качестве индекса, например:

Databasel.Params[' USER NAME '] := 'PASHA';

Databasel.Params['PASSWORD'] := 'ppp';

При этом следует помнить, что в момент смены параметров соединения не должно быть активного соединения с БД, то есть свойство Connected должно быть установлено в значение False.

Рассмотрим другие свойства компонента TDatabase.

Свойство property DatasetCount: Integer; определяет число активных НД, связанных с настоящей БД (компоненты TTable и TQuery).

Свойство property Datasets|Index: Integer]: TDBDataSet; представляет собой коллекцию активных НД (компоненты TDBDataSet), связанных с настоящей БД. Число компонентов определяется свойством DatasetCount. Минимальный индекс 0, максимальный DatasetCount -1.

property DriverName: TSymboIStr;

Указывает имя драйвера BDE, такого как STANDARD (dBASE и Paradox), ORACLE, SYBASE, INFORMIX или INTERBASE. Значение свойства очищается, если устанавливается значение свойства AliasName, и наоборот.

property IsSQLBased: Boolean;

Указывает, ассоциирован ли данный компонент TDatabase с SQL-ориентированной БД.

property SessionName: string;

Указывает компонент TSession, с которым связана БД.

property Temporary: Boolean;

Указывает, создавать ли временный компонент TDatabase для БД, для которых компоненты TDatabase не определены в приложении явно.

Следующие свойства используются для управления транзакциями.

property Translsolation: TTransIsolation;

Устанавливает уровень изоляции транзакций для SQL-сервера.

property InTransaction: Boolean;

Возвращает True, если для компонента TDatabase (для текущего соединения с БД) существует активная транзакция, и False, если для соединения с БД активных транзакций нет.

Метод procedure StartTransaction; инициирует начало транзакции. Если в этот момент активна некоторая транзакция, возбуждается исключение. Транзакционные изменения в наборах БД, имевшие место после выполнения метода Start Transaction, либо подтверждаются методом Commit, либо отменяются методом Rollback. До подтверждения или отмены изменений транзакция, начатая StartTransaction, считается активной.

Метод procedure Commit; подтверждает текущую транзакцию, т.е. подтверждает все модификации в БД, имевшие место с момента последнего вызова метода StartTransaction. Если ни одна транзакция не активна, возбуждается исключение.

Метод procedure Rollback; откатывает текущую транзакцию, т.е. отменяет все модификации в БД, имевшие место с момента последнего вызова метода Start Transaction.

Сведения об уровнях изоляции транзакций, равно как и о других вопросах, связанных со стартом, подтверждением или откатом транзакций в приложении и на сервере БД, вы можете найти в разделе книги, посвященном управлению транзакциями.

Метод procedure Apply Updates(const DataSets: array of TDataSet); применяется для подтверждения кэшированных изменений сразу в нескольких наборах данных. Список НД определяется параметром DataSets. В случае указания нескольких НД их имена разделяются запятыми.

Более подробную информацию об использовании этого метода и о кэшированных изменениях вообще Вы можете найти в разделе книги, посвященном кэшированным изменениям в БД.

Метод procedure Close; закрывает БД и все открытые НД, связанные с ней.

Метод procedure CloseDatasets; закрывает открытые НД, связанные с БД, но не закрывает саму БД.

Метод procedure Open; открывает БД, соединяя компонент TDatabase с сервером или BDE для Paradox или dBASE.

Событие TLoginEvent = procedure(Database: TDatabase; LoginParams:TStrings) of object;

property OnLogin: TLoginEvent; возникает, когда компонент TDatabase начинает сессию соединения с SQL-сервером.




204

глава 25

25. Оператор SELECT

25.1. Простейший вид оператора SELECT *

25.2. Использование предложения WHERE *

25.2.1. Сравнение значения столбца с константой *

25.2.2. Сравнение значения столбца из одной таблицы со значением столбца из другой таблицы (внутреннее соединение) *

25.3. Использование псевдонимов таблиц *

25.4. Предложение ORDER BY - определение сортировки *

25.5. Устранение повторяющихся значений *

25.6. Расчет значений результирующих столбцов на основе арифметических выражений *

25.7. Агрегатные функции *

25.8. Использование группировок записей *

25.9. Предложение HAVING - наложение ограничений на группировку записей *

25.10. Предложение WHERE : задание сложных условий поиска *

25.10.1. Использование логических выражений *

25.10.2. Сравнение столбца с результатом вычисления выражения *

25.10.3. Использование BETWEEN *

25.10.4. Использование IN (список значений) *

25.10.5. Использование STARTING *

25.10.6. Использование CONTAINING *

25.10.7. Использование функции UPPER *

25.10.8. Использование LIKE *

25.10.9. Использование функции CAST *

25.11. Использование подзапросов *

25.12. Вложение подзапросов *

25.13. Дополнительные возможности использования подзапросов, возвр единичное значение *

25.13.1. Использование EXISTS *

25.13.2. Использование SINGULAR *

25.14. Использование подзапросов, возвращающих множество значений *

25.14.1. Использование ALL, SOME *

25.14.2. Использование HAVING и агрегатных функций для вложенных подзапросов *

25.15. Внешние соединения *

25.16. UNION - объединение результатов выполнения нескольких операторов SELECT *

25.17. Использование IS NULL *

25.18. Использование операции сцепления строк *

25.19. Работа с разными БД в одном запросе *

глава 26 26. Добавление, изменение, удаление записей

26.1. Оператор INSERT *

26.1.1. Явное указание списка значений *

26.1.2. Указание значений при помощи оператора SELECT *

26.2..0ператор UPDATE *

26.3. Оператор DELETE *

глава 27 27. Работа с просмотрами VIEW

27.1. Понятие просмотра как виртуальной таблицы *

27.2. Способы формирования просмотров *

27.3. Указание столбцов просмотра в операторе CREATE VIEW *

27.4. Обновляемые и необновляемые просмотры *

27.5. Использование CHECK OPTION *

27.6. Компоненты Delphi и использование просмотров *

глава 28

28. Работа с хранимыми процедурами

28.1. Понятие хранимой процедуры *

28.2. Создание хранимой процедуры *

28.3. Алгоритмический язык хранимых процедур *

28.3.1. Объявление локальных переменных *

28.3.2. Операторные скобки BEGIN... END *

28.3.3. Оператор присваивания *

28.3.4. Оператор IF... THEN ... ELSE *

28.3.5. Оператор SELECT *

28.3.6. Оператор FOR SELECT... DO *

28.3.7. Оператор SUSPEND *

28.3.8. Оператор WHILE... DO *

28.3.9. Оператор EXIT *

28.3.10. Оператор EXECUTE PROCEDURE *

28.3.11. Оператор POST_EVENT *

28.4. Вызов процедур выбора в приложении клиента *

28.5. Обращение к процедурам действия. *

28.6. Изменение и удаление хранимых процедур *

глава 29 29. Работа с триггерами

29.1. Создание триггеров *

29.2. Определение заголовка триггера *

29.3. Значения OLD и NEW *

29.4. Обеспечение каскадных воздействий *

29.5. Ведение журнала изменений *

29.6. Использование триггеров для реализации бизнес-правил *

29.7. Изменение и удаление триггеров *

глава 30 30. Использование генераторов *

глава 31

31. Использование утилиты Database Explorer

31.1. Просмотр метаданных *

31.2. Работа с таблицами *

31.2.1. Просмотр и изменение данных *

31.2.2. Просмотр столбцов *

31.2.3. Просмотр ограничений на значения столбцов *

31.2.4. Просмотр индексов *

31.2.5. Просмотр триггеров *

глава 32 32. Транзакции

32.1. Откат изменений и целостность БД *

32.2. Понятие транзакции *

32.3. Уровни изоляции транзакций: приложение клиента *

32.3.1. Уровень изоляции транзакций Dirty Read *

32.3.2. Уровень изоляции транзакций Read Commited *

32.3.3. Уровень изоляции транзакций Repeatable Read *

32.3.4. Установка уровней изоляции транзакций в Delphi *

32.4. Свойство UpdateMode и обновление записей *

32.5. Явно и неявно стартуемые транзакции *

32.6. Управление транзакциями на SQL-сервере InterBase *

глава 33 33. Кэшированные изменения

33.1. Использование кэшированных изменений *

33.2. Активизация режима кэшированных изменений *

33.3. Отмена кэшированных изменений *

33.4. Подтверждение кэшированных изменений *

33.4.1. Подтверждение кэшированных изменений методом ApplyUpdates компонента TDatabase *

33.4.2. Подтверждение кэшированных изменений методом ApplyUpdates набора данных *

33.5. Видимость измененных записей *

33.6. Обработка ошибок. Обработчик события OnUpdateError *

33.6.1. Использование обработчика OnUpdateError *

33.6.2. Использование параметра UpdateKind *

33.6.3. Использование параметра UpdateAction *

33.6.4. Использование параметра Е *

33.7. Компонент TUpdateSQL *

33.7.1. Использование компонента TUpdateSQL *

33.7.2. Компонент TUpdateSQL: этап разработки *

33.7.3. Компонент TUpdateSQL: выполнение SQL-операторов *

глава 34 34.Работа с событиями

34.1. Понятие события *

34.2. Приложения Delphi и компонент TIBEventAlerter *

34.3. Использование компонента TIBEventAlerter для обработки событий сервера БД в клиентском приложении *

34.4. Обмен сообщениями между приложениями *

34.5. Обмен инициализирующими сообщениями между приложениями *

глава 35 35. Функции, определяемые пользователем

35.1. Понятие функции, определяемой пользователем *

35.2. Разработка DLL и UDF в Delphi *

35.2.1. Общие положения *

35.2.2. Совместимость типов параметров *

35.2.3. Особенности использования в UDF параметров типа PChar *

35.2.4. Особенности использования в UDF параметров типа даты и времени *

35.3. Объявление UDF в БД InterBase *

35.4. Пример создания DLL с несколькими UDF и объявления их в БД *

глава 36 36. Определение бизнес-правил

36.1. Размещение бизнес-правил *

36.2. Реализация бизнес-правил на сервере *

36.2.1. Ограничения значения столбца записи *

36.2.2. Запрет добавления записей в просмотре *

36.2.3. Использование триггеров для поддержания ссылочной целостности *

36.3. Реализация бизнес-правил в приложении клиента *

36.3.1. Реализация бизнес-правил в компонентах типа "набор данных" *

36.3.2. Свойство Constrained (компонент TQuery) *

36.3.3. Свойство Constraints *

36.3.4. Реализация бизнес-правил в компоненте TField *

36.3.5. Реализация бизнес-правил в иных компонентах *

36.4. Использование словаря данных для определения атрибутов полей *

глава 37

37. Оптимизация работы с БД

37.1. Оптимизация структуры БД *

37.1.1. Нормализация таблиц: теория и практика *

37.1.2. Частичная зависимость структуры данных от методов доступа к ним *

37.1.3. Физические характеристики БД *

37.2. Оптимизация запросов *

37.2.1. Оптимальная структура индексов *

37.2.2. "Полезность" индексов *

37.2.3. Просмотр плана выполнения запросов *

37.2.4. Целесообразность создания индексов *

37.2.5. Частичное использование составного индекса *

37.2.6. Многопоточность поиска по OR и IN *

37.2.7. Уменьшение общего количества индексов *

37.3. Оптимизация клиентских приложений *

37.3.1. Минимизация соединений с БД *

37.3.2. Использование TQuery *

37.3.3. Перенос тяжести вычислительной работы на сервер *

глава 38 38. Работа с утилитой InterBase Server Manager

38.1. Соединения *

38.1.1. Соединение с сервером *

38.1.2. Соединение с БД *

38.1.3. Выбор текущего сервера и БД *

38.1.4. Разрыв соединения *

38.2. Изменение конфигурации сервера *

38.3. Сбор статистики о БД *

38.3.1. Статистические данные непосредственно о БД *

38.3.2. Анализ БД *

38.4. Принудительная сборка мусора *

38.5. Создание резервной копии (сохранение) и восстановление БД *

38.5.1. Переход в однопользовательский режим соединения с БД *

38.5.2. Резервное копирование БД *

38.5.3. Восстановление БД из резервной копии *

38.6. Принудительная запись на диск *

38.7. Восстановление транзакций *

38.8. Регистрация новых пользователей *

глава 39 39. Установка привилегий доступа 39.1. Привилегии доступа по умолчанию * 39.2. Виды привилегий * 39.3. Минимальный состав параметров при предоставлении привилегий доступа к таблице БД * 39.4. Предоставление нескольких привилегий * 39.5. Предоставление привилегий нескольким пользователям * 39.6. Назначение привилегий всем пользователям * 39.7. Установка привилегий доступа к отдельным столбцам таблицы * 39.8. Предоставление пользователю права назначать привилегии другим пользователям * 39.9. Назначение привилегий вызова хранимых процедур * 39.10. Назначение процедуре прав доступа к таблице * 39.11. Ликвидация привилегий * приложение А Свойства, методы, события.

Компонент TDataBase *

Компонент TDBChart *

Компонент TDBCheckBox *

Компонент TDBComboBox *

Компонент TDBCtriGrid *

Компонент TDBEdit *

Компонент TDBGrid *

Компонент TDBListBox *

Компонент TDBLookupComboBox *

Компонент TDBMemo *

Компонент TDBRadioGroup *

Компонент TDBRichEdit *

Компонент TDBText *

Компонент TDecisionCube *

Компонент TdecisionGrid *

Компонент TDecisionPivot *

Компонент TDecisionSource *

Компонент TField *

Компонент TIBEventAlerter *

Компонент TQuery *

Компонент TQRBand *

Компонент TQRExp *

Компонент TQRGroup *

Компонент TQRSubDetail *

Компонент TQRSysData *

Компонент TQuickRep *

Компонент TChartSeries *

Компонент TSession *

Компонент ТТаblе *

Компонент TUpdateSQL *

приложение B

Формат SQL-операторов (СУБД InterBase)

База данных *

Создание базы данных *

Определение типа данных *

Домены *

Создание домена *

Ограничение, накладываемое на значения полей, ассоциированных с доменом *

Изменение определения домена *

Таблицы базы данных *

Определение первичного ключа *

Определение уникального ключа *

Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей *

Ограничения на значения столбца *

Добавление нового столбца в таблицу БД *

Добавление новых ограничений целостности *

Удаление столбца (столбцов) из таблицы БД *

Удаление ограничений целостности *

Удаление таблицы БД целиком *

Индексы *

Создание индекса *

Деактивизация индекса *

Активизация индекса *

Вычисление показателя "полезности" индекса *

Удаление индекса *

Выборка данных из таблиц БД *

Изменение данных *

Добавление записей *

Изменение записей *

Просмотры *

Создание просмотра *

Удаление просмотра *

Хранимые процедуры *

Создание хранимой процедуры *

Обращение к хранимой процедуре (утилита WISQL) *

Тело процедуры *

Изменение хранимой процедуры *

Удаление хранимой процедуры: *

Алгоритмический язык триггеров и хранимых процедур *

Объявление локальных переменных *

Оператор присваивания *

Условный оператор *

Оператор выбора SELECT *

Оператор циклической выборки *

Принудительная выдача выходных параметров (только хранимые процедуры) *

Оператор цикла *

Выход из процедуры, триггера *

Вложенный вызов другой хранимой процедуры *

Инициация наступления события *

Обращение к старому и новому значениям столбца (только триггеры) *

Триггеры *

Создание триггера *

Структура тела триггера *

Изменение существующего триггера *

Удаление триггера *

Генераторы *

Создание генератора *

Установка стартового значения генератора *

Транзакции *

Старт транзакции *

События *

Инициация наступления события *

UDF (Функции, определяемые пользователем) *

Объявление UDF (функций, определяемых пользователем) в базе данных *

Привилегии доступа *

Предоставление привилегий доступа к таблицам БД, просмотрам, вызовам процедур *

Отъем привилегий *



Содержание раздела