Реализация доступа к базам данных в среде DELPHI
Класс TSQLTABLE
Класс TSQLTable представляет таблицу базы данных, доступную для клиента как направленный набор данных. Такой набор содержит все записи для полей, определенных в классе TSQLTable. Объект типа TSQLTable должен быть связан с объектом типа TSQLConnection, определяющим соединение с источником данных. Для отображения такого набора данных нельзя использовать таблицу, так как у клиента отсутствует кэш памяти для набора данных. Значение полей таблицы можно отображать компонентами типа TDBText или TDBEdit. Для перемещений по набору записей доступны только методы First и Next.
После размещения в модуле данных или на форме компонента надо выполнить следующие действия:
- Установить значение свойства SQLConnection компонента TSQLTable, выбрав добавленный ранее компонент типа TSQLConnection из предлагаемого списка.
- Определить имя таблицы базы данных, используемой для построения набора данных, определив свойство TableName компонента TSQLTable.
Класс TUPDATESQL
Объект типа TUpdateSQL позволяет для наборов данных, созданных с доступом "только для чтения", поддерживать возможность их обновления посредством выполнения SQL-оператора.
Класс TUpdateSQL реализует следующие свойства и методы:
- DeleteSQL - свойство, определяющее SQL-оператор DELETE.
- InsertSQL - свойство, определяющее SQL-оператор INSERT.
- ModifySQL - свойство, определяющее SQL-оператор UPDATE.
- ExecSQL - метод, выполняющий один из заданных SQL-операторов (в зависимости от значения параметра, указываемого следующими константами: ukDelete, ukInsert, ukModify ).
Класс TDATABASE
Класс TDatabase реализует работу с объектом "база данных" и предоставляет средства контроля над соединением с базой данных.
Компонент типа TDatabase позволяет управлять транзакциями, использовать настраиваемое подключение к серверу, определять в приложении свои псевдонимы для базы данных.
Для работы с компонентом TDatabase необходимо установить значение свойств AliasName и DatabaseName.
Если значением свойства AliasName указан DSN существующего источника данных, то разработчик может сам определить любой внутренний (для приложения) псевдоним базы данных и задать его в свойстве DatabaseName. В этом случае для любого набора данных в списке значений свойства DatabaseName будет отображаться наряду со всеми доступными DSN источниками данных и внутренний псевдоним, заданный свойством DatabaseName компонента TDatabase.
В том случае, если DSN не определен, то свойство DatabaseName должно содержать полное имя файла базы данных, а свойство DriverName - указывать используемый ODBC-драйвер.
Компонент типа TDatabase позволяет управлять режимами работы с наборами данных и транзакциями, используя следующие свойства и методы.
- Exclusive - свойство, позволяющее приложению получить исключительный доступ к базе данных (если это поддерживается SQL-сервером);
- InTransaction - свойство, указывающее, был ли выполнен для базы данных вызов метода StartTransaction.
- ReadOnly - метод, указывающий, установлен ли для соединения с базой данных доступ "только чтение".
-
TransIsolation - метод, задающий уровень изоляции при управлении транзакциями. Уровень изоляции определяет, как данная транзакция будет взаимодействовать с другими транзакциями, работающими с одними и теми же таблицами.
Свойство TransIsolation может быть указано одним из следующих значений:
tiDirtyRead - транзакция может читать данные, которые были изменены другой транзакцией, но для которых не был выполнен вызов Commit (фиксация изменений);
tiReadCommitted - позволяет в одной транзакции читать фиксированные изменения, сделанные в базе данных другой транзакцией;
tiRepeatableRead - истинность данных гарантируется на все время чтения, и транзакция не видит никаких изменений, сделанных другой транзакцией. Прочитанная запись остается постоянной, пока в ней не будут сделаны изменения внутри самой транзакции;
- StartTransaction - метод, открывающий новую транзакцию;
- Commit - метод, выполняющий фиксацию текущей транзакции;
- Rollback - метод, выполняющий откат текущей транзакции;
- Execute - метод, который выполняет указанный параметром SQL-оператор, не возвращающий результирующего набора.
Класс TADOCONNECTION
Класс TADOConnection обеспечивает соединение с данными, доступ к которым реализуется через ADO-объекты.
ADO-объекты позволяют работать с различными хранилищами данных, которые могут и не быть SQL-операторами. Объекты типа TADOConnection используют для доступа к данным OLE DB провайдеры.
Компоненты TADOCommand и TADODataSet связываются с источником данных посредством объекта TADOConnection, указывая ссылку на него как значение свойства Connection.
Для идентификации соединения необходимо определить значение свойства ConnectionString (строка соединения) компонента TADOConnection, которое может основываться на указании:
- datalink-файла;
- строки соединения.
Если в качестве значения свойства ConnectionString указано имя UDL-файла, то настройку соединения можно выполнять автономно от приложения (например, указывая имя базы данных Microsoft SQL Server на текущем ПК).