Вкладка Data Access
Вкладка dbExpress
Вкладка Data Controls
В этой главе мы рассмотрим основные компоненты, предназначенные для работы с базами данных. Компоненты расположены на вкладках 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. Свойство может принимать следующие значения: |
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. Свойство может принимать следующие значения: |
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.
На этом мы закончим краткий обзор компонентов для работы с базами данных.
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.