Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4

Кент Рейсдорф. BORLAND C++BUILDER. Страница 465

Вы можете использовать операторы SQL, не возвращающие значений. К ним относятся, например, INSERT, UPDATE и DELETE. Для запросов такого типа используется метод ExecSQL.

Свойство DatabaseName определяет базу данных, к которой вы хотите направить запрос. Свойство SQL служит для указания одиночного оператора SQL, который будет использоваться в запросе. При обращении к локальной таблице используйте локальный SQL. При обращении к таблицам на сервере можно использовать любой синтаксис, поддерживаемый этим сервером, пока вы не намереваетесь изменять результаты запроса. Для изменения резуль­татов необходимо использовать синтаксис локального SQL, чтобы СУБД могла определить, какая из таблиц базы данных будет обновляться.

Оператор SQL может быть как статическим, так и включать параметры, которые будут динамически заменяться фактическими значениями. Пара­метры запроса, использующего заменяемые параметры (называемого дина­мическим запросом SQL) выделяются двоеточием:

SELECT * FROM ORDERS

WHERE CustomerNuraber=:CustNo

В этом примере CustNo является именем заменяемого параметра. Эти параметры указываются в свойстве Params компонента TQuery.

Свойство Constrained позволяет вам указать, какие изменения могут быть сделаны в активных результатах запроса. Если вы установили для Constrained значение true, то изменения, результатом которых будет удаление строки из набора данных, станут невозможны. Пусть, например, компонент TQuery должен возвращать данные только о тех покупателях, чьи фамилии начи­наются на А. В этом случае попытка изменить столбец LastName так, чтобы фамилии начинались на В, потерпит неудачу. Это во многом похоже на опцию WITH CHECK SQL-оператора VIEW.

Основные задачи

Для получения активных, или изменяемых, результатов запроса необ­ходимо выполнение двух условий. Во-первых, свойство RequestLive должно иметь значение true. Во-вторых, используемый SQL должен соответствовать определенным требованиям. Набор требований зависит от того, к каким таб­лицам вы обращаетесь — локальным или расположенным на сервере. Для локальных таблиц SQL должен:

Web-дизайн (с) 2010 All rights reserved