В этой главе мы рассмотрим основные компоненты, предназначенные для работы с базами данных. Компоненты расположены на вкладках Data Access, dbExpress и Data Controls.
Вкладка Data Access На этой вкладке расположено всего три компонента, которые мы и рассмотрим. "Компонент TDataSource - обеспечивает интерфейс между набором данных и компонентом, отображающим данные. В табл. 16.1 приведены его основные свойства и их описания.
Таблица 16.1. Свойства компонента TDataSource
Свойство
Описание
AutoEdit
Определяет, будут ли компоненты, отображающие данные, переключаться в режим редактирования при попытке изменения данных пользователем. Имеет тип Boolean
DataSet
Определяет имя набора данных, с которым связан источник данных. Имеет тип TdataSet
Enabled
Определяет, будут ли отображаться данные в компонентах, предназначенных для показа данных, которые связаны с этим источником данных. Имеет тип Boolean
Name
Определяет имя компонента TdataSource
Tag
Свойство, которое может использоваться по усмотрению программиста и не имеет специального назначения. Многие компоненты содержат это свойство. Свойство имеет тип Integer
Компонент TClientDataSet представляет собой клиентский набор данных, который не зависит от типа используемой базы данных. Описание его свойств представлено в табл. 16.2.
Таблица 16.2. Свойства компонента TClientDataSet
Свойство
Описание
Active
Определяет, является ли набор данных активным. Свойство имеет тип Boolean
Aggregates
Содержит списокдоступных агрегатов. Имеет тип Taggregates
AggregatesActive
Определяет, нужно ли производить вычисления агрегатов. Имеет тип Boolean
AutoCalcFields
Определяет, нужно ли генерировать событие OnCalcFields и обновлять содержимое полей. Имеет тип Boolean. Принимает значение true при открытии набора данных, при переключении набора данных в состояние DsEdit или при передаче фокуса другому компоненту на форме
CoiranandText
Содержит текст SQL-запроса. Имеет тип string. При установленном значении свойства FileName это свойство игнорируется. Свойство игнорируется также и в случае, когда в свойстве Options сброшен флажок poAllowCommandText
ConnectionBroker
Определяет брокера соединения с сервером. Имеет тип TconnectionBroker
Constraints
Определяет накладываемые ограничения на значение на уровне одной записи. Имеет тип TConstraints
DataSetField
Указывает на объект TDataSetField, управляющий вложенными наборами данных. Имеет тип TDataSetField
DisableStringTrim
Определяет, нужно ли удалять лишние пробелы в конце строки при вставке ее в таблицу базы данных. Имеет типBoolean
FetchOnDemand
Определяет, должно ли приложение получать данные по мере необходимости. Имеет тип Boolean
FieldDefs
Содержит список полей, определяющих набор данных. Имеет тип TfieldDefs
FileName
Содержит имя файла, в котором хранятся кэшируемые данные. Имеет тип string
Filter
Задает фильтр, по которому будут выбираться данные из таблицы. Имеет тип string
Filtered
Определяет, включено или выключено свойство Filter. Имеет тип Boolean
FilterOptions
Определяет параметры фильтрации записей таблицы. Имеет тип TfilterOptions
IndexDefs
Содержит определения индексов. Имеет тип TlndexDefs
IndexFieldNames
Содержит список наименований полей таблицы, по которым будет производиться сортировка набора данных. Имена полей разделяются точкой с запятой. Имеет тип String
IndexName
Содержит имя индекса, по которому будет произведена сортировка набора данных. Имеет тип String
MasterSource
Содержит имя главного источника данных при организации связи таблиц главная-подчиненная (master-detail). Имеет тип TdataSource
MasterFields
Содержит имена полей, по которым осуществляется связь между главной и подчиненной таблицами. Имеет тип String
ObjectView
Включает или выключает иерархическое представление для вложенных полей. Имеет тип Boolean
PacketRecord
Определяет количество записей в одном пакете данных. Имеет тип Integer. Возможные значения: -1 - все записи; >0 - конкретное число записей; 0 - в пакет будут включаться только мета-данные
Params
Определяет список параметров набора данных. Имеет тип Tparams
ProviderName
Определяет имя зарегистрированного провайдера для сервера. Имеет тип string
Readonly
Определяет способ доступа к записям. Имеет тип Boolean. Если значение свойства - true, то данные доступны только для чтения. Если значение - false, то можно изменять существующие данные и записывать новые
RemoteServer
Определяет компонент, с помощью которого клиентский набор данных соединяется с сервером. Имеет тип TcustomRemoteServer
StoreDefs
Определяет, будут ли храниться определения полей и индексов в клиентском наборе данных. Имеет тип Boolean
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип Integer
Компонент TDataSetProvider - предназначен для формирования пакетов данных для отправки их клиентам. Свойства этого компонента перечислены в табл. 16.3.
Таблица 16.3. Свойства компонента TDataSetProvick
Свойство
Описание
Constraints
Определяет накладываемые ограничения на значение на уровне одной записи. Имеет тип Tconstraints
DataSet
Определяет набор данных, с которым взаимосвязан компонент TdataSetProvider. Имеет ТИП TdataSet
Exported
Позволяет приложению осуществлять вызовы провайдера, если он расположен на сервере. Имеет тип Boolean
Name
Определяет имя компонента TdataSetProvider
Options
Содержит параметры работы с данными. Имеет тип TproviderOptions
ResolveToDataSet
Определяет, будут ли автоматически применяться изменения в наборе данных или на сервере базы данных Имеет тип Boolean
Tag
Свойство, которое может использоваться по усмотрению программиста и у него нет специального назначения. Свойство имеет тип Integer
UpdateMode
Определяет способ поиска записи, которую необходимо обновить. Имеет тип TUpdateMode. Может принимать значения: UpWhereAll - искать по всем полям; UpWhereChanged - искать по ключевым и измененным полям; UpWhereKeyOnly - искать только по ключевым полям
Вкладка dbExpress Данная вкладка содержит семь компонентов. Рассмотрим эти компоненты и их основные свойства. Компонент TSQLConnetion - предназначен для обеспечения связи с сервером базы данных. В Delphi аналогом данного компонента является компонент TDatabase. Табл. 16.4 содержит перечень основных свойств данного компонента.
Таблица 16.4. Свойства компонента TSQLConnection
Свойство
Описание
Connected
Определяет, установлена ли связь с базой данных. Данное свойство имеет тип Boolean. Если связь установлена, свойство имеет значение true, иначе - false
ConnectionName
Содержит имя конфигурации. Имеет тип string. Является аналогом свойства AliasName в Delphi
DriverName
Содержит имя драйвера, необходимого для соединения с базой данных (DB2, Interbase, Oracle или MySQL). Имеет тип String. Данное свойство устанавливается автоматически после задания значения свойства ConnectionName
KeepConnection
Определяет, нужно ли поддерживать соединение с сервером базы данных, если в приложении нет активных наборов данных. Имеет тип Boolean. Если связь необходимо поддерживать, установите это свойство в true, иначе - false
LibraryName
Содержит имя библиотеки, в которой находится необходимый драйвер для связи с базой данных. Свойство имеет тип String
LoadParamsOnConnect
Определяет, нужно ли загружать параметры соединения перед его установкой во время работы приложения. Имеет тип Boolean
LoginPrompt
Определяет, нужно ли при установке соединения запрашивать имя пользователя и пароль. Имеет тип Boolean. Если true, то нужно, иначе - не нужно
Name
В этом свойстве вы можете указать имя компонента TSQLConnection. имеет тип TcomponentName
Params
Устанавливает параметры соединения. Имеет тип TStrings
TableScope
Устанавливает параметры видимости таблиц базы данных. Имеет тип TTableScopes и может принимать следующие значения: TsSynonym- видимые синонимы; TsSysTable - видимые системные таблицы; TsTable - видимые таблицы пользователей; Tsview - видимые представления
VendorLib
Указывает имя библиотеки клиентской части базы данных. Имеет тип String
Компонент TSQLDataSet - представляет собой однонаправленный набор данных. В табл. 16.5 перечислены его основные свойства.
Таблица 16.5. Свойства компонента TSQLDataSet
Свойство
Описание
Active
Определяет, является ли набор данных активным. Только активный набор данных может работать с записями таблиц. Свойство имеет тип Boolean. Если значение true - набор данных активен, иначе - неактивен
CommandText
Содержит текст запроса SQL на выполнение каких-либо действий с данными. Имеет тип string
CommandType
Определяет тип набора данных. Значение свойства имеет тип TSQLCommandType. Свойство может принимать следующие значения: CtQuery - обычный SQL-запрос; CtTable - таблица целиком, при этом автоматически будет сгенерирован запрос на выборку всех записей таблицы по всем полям; CtStoredProc - процедура, хранимая на сервере базы данных
DataSource
Указывает источник данных для этого набора данных. Имеет ТИП TdataSource
MaxBlobSize
Определяет максимальный размер BLOB-полей. Имеет тип Integer
ObjectView
Включает или выключает иерархические представления для вложенных полей. Имеет тип Boolean
ParamCheck
Указывает, нужно ли обновлять список параметров при изменении текста запроса (свойство CommandText). Имеет тип Boolean
Params
Определяет список параметров запроса. Имеет тип TParams
SortFieldNames
Содержит список наименований полей таблицы, по которым будет производиться сортировка набора данных. Имена полей разделяются точкой с запятой. Имеет тип string. Свойство активно только при установленном топе набора данных CtTable В свойстве CommandType
SQLConnection
Содержит имя компонента TSQLConnection, с помощью которого будет осуществляться соединение с базой данных. Имеет тип TSQLConnection
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Многие компоненты содержат это свойство. Свойство имеет тип Integer
Компонент TSQLQuery - определяет однонаправленный запрос к базе данных. В табл. 16.6 приводятся его основные свойства и их описания.
Таблица 16.6. Свойства компонента TSQLQuery
Свойство
Описание
Active
Определяет, является ли запрос активным. Только активный запрос может работать с записями таблиц. Свойство имеет тип Boolean. Если значение true - запрос активен, иначе - неактивен
DataSource
Указывает источник данных для этого набора данных. Имеет тип TdataSource
MaxBlobSize
Определяет максимальный размер BLOB-полей. Имеет тип Integer
ObjectView
Включает или выключает иерархические представления для вложенных полей. Имеет тип Boolean
ParamCheck
Указывает, нужно ли обновлять список параметров при изменении текста запроса (свойство CommandText). Имеет тип Boolean
Params
Определяет список параметров запроса. Имеет тип TParams
SQL
В этом свойстве указывается текст SQL-запроса. Имеет тип Tstrings
ISQLConnection
Содержит имя компонента TSQLConnection, с помощью которого будет осуществляться соединение с базой данных. Имеет тип TSQLConnection
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип Integer
Компонент TSQLStoredProc - предназначен для работы с процедурами, хранимыми на сервере базы данных. При получении данных ведет себя однонаправленно. Табл. 16.7 дает описание основных свойств этого компонента.
Таблица 16.7. Свойства компонента TSQLStoredProc
Свойство
Описание
Active
Определяет, является ли процедура, хранимая на сервере, активной. Имеет тип Boolean
MaxBlobSize
Определяет максимальный размер BLOB-полей. Имеет тип Integer
Objectview
Включает или выключает иерархические представления для вложенных полей. Имеет тип Boolean
ParamCheck
Указывает, нужно ли обновлять список параметров при изменении процедуры. Имеет тип Boolean
Params
Определяет список параметров процедуры. Имеет тип Tparams
SQLConnection
Содержит имя компонента TSQLConnection, с помощью которого будет осуществляться соединение с базой данных. Имеет тип TSQLConnection
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип Integer
Компонент TSQLTabie - задает таблицу баз данных и представляет собой однонаправленный набор данных. В табл. 16.8 перечислены основные свойства компонента.
Таблица 16.8. Свойства компонента
Свойство
Описание
Active
Определяет, является ли таблица активной. Только активная таблица может работать с записями. Свойство имеет тип Boolean
IndexFieldNames
Содержит список наименований полей таблицы, по которым будет производиться сортировка набора данных. Имена полей разделяются точкой с запятой. Имеет тип string
IndexName
Содержит имя индекса, по которому будет произведена сортировка набора данных. Имеет тип string
MasterSource
Содержит имя главного источника данных при организации связи таблиц главная-подчиненная (master-detail). Имеет тип TdataSource
MasterFields
Содержит имена полей, по которым осуществляется связь между главной и подчиненной таблицами. Имеет тип string
MaxBlobSize
Определяет максимальный размер BLOB-полей. Имеет тип Integer
ObjectView
Включает или выключает иерархические представления для вложенных полей. Имеет тип Boolean
SQLConnection
Содержит имя компонента TSQLConnection, с помощью которого будет осуществляться соединение с базой данных. Имеет тип TSQLConnection
TableName
Содержит имя таблицы базы данных, с которой будет производиться работа. Имеет тип string
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип Integer
Компонент TSQLMonitor - предназначен для организации наблюдения за работой компонентов доступа к данным. В табл. 16.9 приведены основные свойства этого компонента.
Таблица 16.9. Свойства компонента TSQLMonitor
Свойство
Описание
Active
Определяет, является ли монитор активным. Свойство имеет тип Boolean
AutoSave
Определяет, будет ли производиться автоматическое сохранение журнала событий в файл, указанный в свойстве FileName данного компонента. Имеет тип Boolean
FileName
Определяет имя файла, в который будет производиться запись журнала событий. Имеет тип string
SQLConnection
Содержит имя компонента TSQLConnection, с помощью которого будет осуществляться соединение с базой данных. Имеет ТИП TSQLConnection
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип integer
TraceList
Данное свойство содержит журнал событий. Имеет тип Tstrings
Компонент TSQLCiientDataSet - представляет собой клиентский набор данных. Описание его основных свойств представлено в табл. 16.10.
Таблица 16.10. Свойства компонента TS QLClientDataSet
Свойство
Описание
Active
Определяет, является ли набор данных активным. Свойство имеет тип Boolean
Aggregates
Содержит список доступных агрегатов. Имеет тип Taggregates
AggregatesActive
Определяет, нужно ли производить вычисления агрегатов. Имеет тип Boolean
AutoCalcFields
Определяет, нужно ли генерировать событие OnCalcFields и обновлять содержимое полей. Имеет тип Boolean. Принимает значение true при открытии набора данных, при переключении набора данных в состояние DsEdit или при передаче фокуса другому компоненту на форме
ConvmandText
Содержит текст SQL-запроса. Имеет тип string. При установленном значении свойства FileName это свойство игнорируется. Свойство игнорируется также и в случае, когда в свойстве Options сброшен флажок poAllowCommandText
CommandType
Определяет тип набора данных. Значение свойства имеет тип TSQLCommandType. Свойство может принимать следующие значения: СtQuery - обычный SQL-запрос; СtTable - таблица целиком, при этом автоматически будет сгенерирован запрос на выборку всех записей таблицы по всем полям; GtStoredProc - процедура, хранимая на сервере базы данных
ConnectionName
Содержит имя конфигурации. Имеет тип string. Является аналогом свойства AliasName в Delphi
Constraints
Определяет накладываемые ограничения на значение на уровне одной записи. Имеет тип Tconstraints
DBConnection
Определяет имя компонента TSQLConnection, с помощью которого будет производиться работа с базой данных. Имеет ТИП TSQLConnection
DisableStringTrim
Определяет, нужно ли удалять лишние пробелы в конце строки при вставке ее в таблицу базы данных. Имеет тип Boolean
FetchOnDemand
Определяет, должно ли приложение получать данные по мере необходимости. Имеет тип Boolean
FieldDefs
Содержит список полей, определяющих набор данных. Имеет тип TfieldDefs
FileName
Содержит имя файла, в котором хранятся кэшируемые данные. Имеет тип string
Filter
Задает фильтр, по которому будут выбираться данные из таблицы. Имеет тип string
Filtered
Определяет, включено или выключено свойство Filter. Имеет тип Boolean
FilterOptions
Определяет параметры фильтрации записей таблицы. Имеет тип TfilterOptions
IndexDefs
Содержит определения индексов. Имеет тип TindexDefs
indexFieldNames
Содержит список наименований полей таблицы, по которым будет производиться сортировка набора данных. Имена полей разделяются точкой с запятой. Имеет тип String
IndexName
Содержит имя индекса, по которому будет произведена сортировка набора данных. Имеет тип string
MasterSource
Содержит имя главного источника данных при организации связи таблиц главная-подчиненная (master-detail). Имеет тип TdataSource
MasterFields
Содержит имена полей, по которым осуществляется связь между главной и подчиненной таблицей. Имеет тип string
ObjectView
Включает или выключает иерархические представления для вложенных полей. Имеет тип Boolean
Options
Содержит параметры работы с данными. Имеет тип TproviderOptions
PacketRecord
Определяет количество записей в одном пакете данных. Имеет тип Integer. Возможные значения: -1 - все записи; >0 - конкретное число записей; 0 - в пакет будут включаться только мета-данные
Params
Определяет список параметров набора данных. Имеет тип Tparams
ReadOnly
Определяет способ доступа к записям. Имеет тип Boolean. Если значение свойства - true, то данные доступны только для чтения. Если значение - false, то можно изменять существующие данные и записывать новые
Tag
Свойство, которое может использоваться по усмотрению программиста, и у него нет специального назначения. Свойство имеет тип Integer
UpdateMode
Определяет способ поиска записи, которую необходимо обновить. Имеет тип TupdateMode. Может принимать значения: UpWhereAll - искать по всем полям; UpWhereChanged - искать по ключевым и измененным полям; UpWhereKeyOnly - искать только по ключевым полям
Вкладка Data Controls Данная вкладка содержит компоненты, предназначенные для отображения записей из наборов данных. Мы не будем рассматривать свойства каждого компонента этой вкладки. Мы лишь отметим два главных свойства этих компонентов: DataFields - определяет поле, значения которого будут отображаться в данном компоненте; DataSource - определяет источник данных для этого компонента, т. е. компонент типа TDataSource. На этом мы закончим краткий обзор компонентов для работы с базами данных.