Компонент Tdatabase
204 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.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.9. Использование функции CAST *
25.11. Использование подзапросов *
25.13. Дополнительные возможности использования подзапросов, возвр единичное значение *
25.13.1. Использование EXISTS *
25.13.2. Использование SINGULAR *
25.14. Использование подзапросов, возвращающих множество значений *
25.14.1. Использование ALL, SOME *
25.14.2. Использование HAVING и агрегатных функций для вложенных подзапросов *
25.16. UNION - объединение результатов выполнения нескольких операторов SELECT *
25.17. Использование IS NULL *
25.18. Использование операции сцепления строк *
25.19. Работа с разными БД в одном запросе *
глава 26 26. Добавление, изменение, удаление записей26.1.1. Явное указание списка значений *
26.1.2. Указание значений при помощи оператора SELECT *
глава 27 27. Работа с просмотрами VIEW27.1. Понятие просмотра как виртуальной таблицы *
27.2. Способы формирования просмотров *
27.3. Указание столбцов просмотра в операторе CREATE VIEW *
27.4. Обновляемые и необновляемые просмотры *
27.5. Использование CHECK OPTION *
27.6. Компоненты Delphi и использование просмотров *
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.6. Оператор FOR SELECT... DO *
28.3.8. Оператор WHILE... DO *
28.3.10. Оператор EXECUTE PROCEDURE *
28.3.11. Оператор POST_EVENT *
28.4. Вызов процедур выбора в приложении клиента *
28.5. Обращение к процедурам действия. *
28.6. Изменение и удаление хранимых процедур *
глава 29 29. Работа с триггерами29.2. Определение заголовка триггера *
29.4. Обеспечение каскадных воздействий *
29.5. Ведение журнала изменений *
29.6. Использование триггеров для реализации бизнес-правил *
29.7. Изменение и удаление триггеров *
глава 30 30. Использование генераторов * 31. Использование утилиты Database Explorer31.2.1. Просмотр и изменение данных *
31.2.3. Просмотр ограничений на значения столбцов *
глава 32 32. Транзакции32.1. Откат изменений и целостность БД *
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.1. Использование компонента TUpdateSQL *
33.7.2. Компонент TUpdateSQL: этап разработки *
33.7.3. Компонент TUpdateSQL: выполнение SQL-операторов *
глава 34 34.Работа с событиями34.2. Приложения Delphi и компонент TIBEventAlerter *
34.3. Использование компонента TIBEventAlerter для обработки событий сервера БД в клиентском приложении *
34.4. Обмен сообщениями между приложениями *
34.5. Обмен инициализирующими сообщениями между приложениями *
глава 35 35. Функции, определяемые пользователем35.1. Понятие функции, определяемой пользователем *
35.2. Разработка DLL и UDF в Delphi *
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.1. Оптимизация структуры БД *
37.1.1. Нормализация таблиц: теория и практика *
37.1.2. Частичная зависимость структуры данных от методов доступа к ним *
37.1.3. Физические характеристики БД *
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 Manager38.1.1. Соединение с сервером *
38.1.3. Выбор текущего сервера и БД *
38.2. Изменение конфигурации сервера *
38.3.1. Статистические данные непосредственно о БД *
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. Ликвидация привилегий * приложение А Свойства, методы, события. приложение BФормат SQL-операторов (СУБД InterBase)
Ограничение, накладываемое на значения полей, ассоциированных с доменом *
Изменение определения домена *
Определение первичного ключа *
Определение уникального ключа *
Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей *
Ограничения на значения столбца *
Добавление нового столбца в таблицу БД *
Добавление новых ограничений целостности *
Удаление столбца (столбцов) из таблицы БД *
Удаление ограничений целостности *
Вычисление показателя "полезности" индекса *
Обращение к хранимой процедуре (утилита WISQL) *
Изменение хранимой процедуры *
Удаление хранимой процедуры: *
Алгоритмический язык триггеров и хранимых процедур *
Объявление локальных переменных *
Оператор циклической выборки *
Принудительная выдача выходных параметров (только хранимые процедуры) *
Выход из процедуры, триггера *
Вложенный вызов другой хранимой процедуры *
Инициация наступления события *
Обращение к старому и новому значениям столбца (только триггеры) *
Изменение существующего триггера *
Установка стартового значения генератора *
Инициация наступления события *
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. Оператор SELECT
25.1. Простейший вид оператора SELECT *
25.2. Использование предложения WHERE *
25.2.1. Сравнение значения столбца с константой *
25.2.2. Сравнение значения столбца из одной таблицы со значением столбца из другой таблицы (внутреннее соединение) *
25.3. Использование псевдонимов таблиц *
25.4. Предложение ORDER BY - определение сортировки *
25.5. Устранение повторяющихся значений *
25.6. Расчет значений результирующих столбцов на основе арифметических выражений *
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.9. Использование функции CAST *
25.11. Использование подзапросов *
25.13. Дополнительные возможности использования подзапросов, возвр единичное значение *
25.13.1. Использование EXISTS *
25.13.2. Использование SINGULAR *
25.14. Использование подзапросов, возвращающих множество значений *
25.14.1. Использование ALL, SOME *
25.14.2. Использование HAVING и агрегатных функций для вложенных подзапросов *
25.16. UNION - объединение результатов выполнения нескольких операторов SELECT *
25.17. Использование IS NULL *
25.18. Использование операции сцепления строк *
25.19. Работа с разными БД в одном запросе *
глава 26 26. Добавление, изменение, удаление записей26.1.1. Явное указание списка значений *
26.1.2. Указание значений при помощи оператора SELECT *
глава 27 27. Работа с просмотрами VIEW27.1. Понятие просмотра как виртуальной таблицы *
27.2. Способы формирования просмотров *
27.3. Указание столбцов просмотра в операторе CREATE VIEW *
27.4. Обновляемые и необновляемые просмотры *
27.5. Использование CHECK OPTION *
27.6. Компоненты Delphi и использование просмотров *
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.6. Оператор FOR SELECT... DO *
28.3.8. Оператор WHILE... DO *
28.3.10. Оператор EXECUTE PROCEDURE *
28.3.11. Оператор POST_EVENT *
28.4. Вызов процедур выбора в приложении клиента *
28.5. Обращение к процедурам действия. *
28.6. Изменение и удаление хранимых процедур *
глава 29 29. Работа с триггерами29.2. Определение заголовка триггера *
29.4. Обеспечение каскадных воздействий *
29.5. Ведение журнала изменений *
29.6. Использование триггеров для реализации бизнес-правил *
29.7. Изменение и удаление триггеров *
глава 30 30. Использование генераторов * 31. Использование утилиты Database Explorer31.2.1. Просмотр и изменение данных *
31.2.3. Просмотр ограничений на значения столбцов *
глава 32 32. Транзакции32.1. Откат изменений и целостность БД *
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.1. Использование компонента TUpdateSQL *
33.7.2. Компонент TUpdateSQL: этап разработки *
33.7.3. Компонент TUpdateSQL: выполнение SQL-операторов *
глава 34 34.Работа с событиями34.2. Приложения Delphi и компонент TIBEventAlerter *
34.3. Использование компонента TIBEventAlerter для обработки событий сервера БД в клиентском приложении *
34.4. Обмен сообщениями между приложениями *
34.5. Обмен инициализирующими сообщениями между приложениями *
глава 35 35. Функции, определяемые пользователем35.1. Понятие функции, определяемой пользователем *
35.2. Разработка DLL и UDF в Delphi *
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.1. Оптимизация структуры БД *
37.1.1. Нормализация таблиц: теория и практика *
37.1.2. Частичная зависимость структуры данных от методов доступа к ним *
37.1.3. Физические характеристики БД *
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 Manager38.1.1. Соединение с сервером *
38.1.3. Выбор текущего сервера и БД *
38.2. Изменение конфигурации сервера *
38.3.1. Статистические данные непосредственно о БД *
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. Ликвидация привилегий * приложение А Свойства, методы, события. приложение BФормат SQL-операторов (СУБД InterBase)
Ограничение, накладываемое на значения полей, ассоциированных с доменом *
Изменение определения домена *
Определение первичного ключа *
Определение уникального ключа *
Определение ограничения внешнего ключа и ссылочной целостности с родительской таблицей *
Ограничения на значения столбца *
Добавление нового столбца в таблицу БД *
Добавление новых ограничений целостности *
Удаление столбца (столбцов) из таблицы БД *
Удаление ограничений целостности *
Вычисление показателя "полезности" индекса *
Обращение к хранимой процедуре (утилита WISQL) *
Изменение хранимой процедуры *
Удаление хранимой процедуры: *
Алгоритмический язык триггеров и хранимых процедур *
Объявление локальных переменных *
Оператор циклической выборки *
Принудительная выдача выходных параметров (только хранимые процедуры) *
Выход из процедуры, триггера *
Вложенный вызов другой хранимой процедуры *
Инициация наступления события *
Обращение к старому и новому значениям столбца (только триггеры) *
Изменение существующего триггера *
Установка стартового значения генератора *
Инициация наступления события *
UDF (Функции, определяемые пользователем) *
Объявление UDF (функций, определяемых пользователем) в базе данных *
Предоставление привилегий доступа к таблицам БД, просмотрам, вызовам процедур *