Cтраница 3
Последние три компонента обеспечивают совместимость с аналогичными компонентами BDE и обладают одноименными свойствами. Если вы не собираетесь адаптировать для dbExpress имеющийся старый код BDE, для вас будет удобнее использовать универсальный компонент SQLDataSet, который позволяет выполнить запрос, обратиться к таблице или запустить сохраненную процедуру. [31]
Сохраненные процедуры не ограничиваются использованием только запросов на выборку. Они используются для выполнения запросов с параметрами и запросов на изменение, вставку или удаление данных с момошм инструкций SQL UPDATE, INSERT и DELETE. Сохраненная процедура - это специальная программа из совместно откомпилированного набора инструкций Transact-SQL, сохраненная в базе данных SQL Server и выполняемая по вызову клиента. [32]
Компонент SQLDataSet позволяет извлечь из базы данных всю таблицу целиком, кроме того, он позволяет воспользоваться SQL-запросом или сохраненной процедурой для того, чтобы прочитать из БД набор данных или выполнить в отношении БД некоторую команду. Один из трех режимов доступа определяется при помощи значения свойства CommandType. Для таблицы или сохраненной процедуры свойство CommandText содержит в себе имя соответствующего элемента базы данных, а в редакторе отображается ниспадающий список, в котором перечисляются все допустимые значения. [33]
Триггеры в некоторой степени напоминают события Delphi. Активизация триггера выполняется в момент, когда происходит некоторое событие. Триггеры могут запускать некоторый специальный код или обращаться к сохраненной процедуре. В обоих случаях исполнение происходит полностью на стороне сервера. Триггеры используются для того, чтобы поддерживать целостность данных, - они позволяют проверять новые данные более сложными способами, чем это возможно при помощи стандартных ограничений. [34]
Как в результате выполнения данной сохраненной процедуры, так и в результате выполнения аналогичного SQL-запроса вы получите от сервера одни и те же данные. Разница между двумя подходами состоит не в результате, а в скорости выполнения. Сохраненная процедура заранее компилируется и сохраняется на стороне сервера в виде специального внутреннего кода, исполнение которого осуществляется значительно быстрее, чем обработка поступившего извне SQL-запроса. На этапе компиляции процедуры сервер заранее определяет стратегию, которую он будет использовать в дальнейшем для доступа к данным. Обычный внешний SQL-запрос, напротив, каждый раз компилируется заново. [35]
Триггеры срабатывают автоматически для указанных вами событий. Если вы планируете выполнить в отношении базы данных набор команд в пакетном режиме, наличие в базе триггера может замедлить этот процесс. Если целостность данных, добавляемых в базу таким образом, уже проверена, вы можете временно отключить триггер и выполнить пакетное обновление. Зачастую пакет команд оформляется в виде сохраненной процедуры, однако в сохраненной процедуре в общем случае нельзя использовать DDL-выражений, подобных тем, которые выполняют деактивацию и реактивацию триггера. В подобной ситуации вы можете определить представление ( view) базы данных на основе команды select from table - в результате будет создан псевдоним ( alias) таблицы. [36]
Триггеры срабатывают автоматически для указанных вами событий. Если вы планируете выполнить в отношении базы данных набор команд в пакетном режиме, наличие в базе триггера может замедлить этот процесс. Если целостность данных, добавляемых в базу таким образом, уже проверена, вы можете временно отключить триггер и выполнить пакетное обновление. Зачастую пакет команд оформляется в виде сохраненной процедуры, однако в сохраненной процедуре в общем случае нельзя использовать DDL-выражений, подобных тем, которые выполняют деактивацию и реактивацию триггера. В подобной ситуации вы можете определить представление ( view) базы данных на основе команды select from table - в результате будет создан псевдоним ( alias) таблицы. [37]