Кент Рейсдорф. 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 должен: