SQL в Delphi
Автор: OAmiry (Borland)
Delphi поддерживает статический и динамический SQL. В Delphi имеется объект
TQuery, который используется для хранения и выполнения SQL-запросов.
Свойство TQuery SQL содержит текст SQL-запроса, выполняемых TQuery. Данное
свойство имеет тип TStrings, означающее, что оно может хранить в списке целую
серию строк. Список ведет себя подобно массиву, но в действительности это
специальный класс с уникальными возможностями.
Компонент TQuery позволяет выполнять два типа
SQL-запросов:
- Статические SQL-запросы
- Динамические SQL-запросы
Статический SQL-запрос устанавливается во
время проектирования и не содержит никаких параметров или переменных. Например,
следующая строка является статическим SQL-запросом:
SELECT * FROM CUSTOMER WHERE CUST_NO = 1234
Динамический SQL-запрос, или, как его еще называют, параметрический запрос,
включает в себя параметры для колонок или имени таблицы. Например, следующая
строка является динамическим SQL-запросом:
SELECT * FROM CUSTOMER WHERE CUST_NO = :Number
Переменная Number, указанная после двоеточия - параметр, который вы
назначаете во время выполнения приложения. Во время выполнения запроса параметр
может изменяться.
Delphi-приложения могут использовать SQL для получения доступа
к следующим БД:
- Таблицы Paradox или dBASE, использующие локальный SQL. Допустимый синтаксис
является подмножеством стандарта ANSI-standard SQL и включает основные SELECT,
INSERT, UPDATE, и DELETE запросы. Для получения дополнительной информации о
локальном синтаксисе SQL обратитесь к справке Using Local SQL.
- Базы данных Local InterBase Server, включая Local InterBase Server.
Допускаются любые запросы InterBase SQL. Для получения дополнительной информации
о синтаксисе и ограничениях обратитесь к электронной справке SQL Statement and
Function Reference.
- Базы данных на удаленных серверах баз данных (только в версии Delphi
Client/server). По-видимому вы установили подходящий SQL Link. В SQL серверах
допускаются любые стандартные SQL запросы. Для получения дополнительной
информации о синтаксисе и ограничениях обратитесь к электронной справке вашего
сервера.
Delphi также поддерживает разнородные запросы к более чем
одному серверу или типу таблицы (для примера, данные из таблицы Oracle и таблицы
Paradox). Для получения дополнительной информации обратитесь к электронной
справке Creating Heterogeneous Queries (создание гетерогенных запросов).
Обработка транзаций в приложениях:
Delphi приложения могут управлять транзакциями следующими способами:
- Неявно, автоматически стартуя и запуская транзакции, когда приложение
пытается передать данные (Post data).
- Явно, следующими способами в зависимости от уровня управления, требующемуся
вашему приложению:
- Методы TDatabase StartTransaction, Commit, и Rollback.
- Это рекомендуемый метод.
- Passthrough (транзитная пересылка) SQL в компоненте TQuery. Ваше приложение
должно использовать специфически-серверные SQL запросы управления транзакциями,
и вы должны понять как управляются транзакции вашим сервером.
|