Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36.shtml

Глава 36. TDataSet и его потомки

  • TDataSet
  • TDBDataSet
  • TTable
  • TStoredProc
  • TQuery

       Возможности доступа к базам данных в Delphi обеспечиваются классом TDataSet. TDataSet, как подсказывает имя, представляет наборы данных, подобные строкам в таблице и обеспечивает как реляционный, так и навигационный доступ к данным. TDataSet определяет всю основную навигацию по записям и функции редактирования. TDBDataSet, порожденный непосредственно от TDataSet, представляет наборы данных, которые связаны с базой данных BDE (Borland Database Engine). От TDBDataSet произведены TTable, TStoredProc и TQuery — невизуальные компоненты доступа, находящиеся на Палитре компонентов.

Важно
       Разделы ссылок TDBDataSet, TTable, TStoredProc и TQuery в данной редакции опущены. За сведениями по этому вопросу обращайтесь к руководству Borland по библиотекам (Reference Library Guide — RLG).

TDataSet
       TDataSet инкапсулирует реляционную концепцию набора данных, который можно более просто представить как множество строк в таблице. В реляционной базе данных об отношениях можно грубо думать как о таблицах. Говоря точнее, отношение можно представить таблицей (хотя обратное необязательно правильно). Однако такая таблица должна обладать определенными свойствами и прежде всего тем, что все содержащиеся в ней строки должны быть уникальными. Класс TDataSet в этом смысле несколько смягчен, поскольку реально является оболочкой вокруг функциональности BDE, которая предоставляет возможность взаимодействия с несколькими различными физическими базами данных, начиная от небольших настольных (таких как Paradox и dBASE) и заканчивая мощными SQL-серверами баз данных (подобными Oracle, Informix и т.п.) Одни из этих баз данных являются более (или менее) реляционными по сравнению с другими. Следовательно, класс TDataSet имеет широкие определения: он просто является коллекцией строк таблицы.
       Наиболее существенная функциональность, имеющаяся в TDataSet, задается методами и событиями, которые предоставляют возможность взаимодействия или управления взаимодействием с базовым набором данных.
       Рисунок 36-1 показывает ветвь TDataSet VCL. В таблице 36-1 перечислены свойства, методы и события, реализуемые TDataSet.


РИСУНОК 36-1 Ветвь TDataSet VCL

Таблица 36-1 Методы, свойства и события, реализуемые TDataSet

Использовать или установить это ... Чтобы сделать это ... Наследование
Active Получить или установить состояние TDataSet. Нет
ActiveBuffer Получить доступ к активному буферу TDataSet. Нет
AfterCancel Пользовательская обработка после прекращения редактирования записи. Нет
AfterClose Пользовательская обработка после закрытия TDataSet. Нет
AfterDelete Пользовательская обработка после удаления записи. Нет
AfterEdit Пользовательская обработка после перехода в режим редактирования. Нет
AfterInsert Пользовательская обработка после вставки новой записи. Нет
AfterOpen Пользовательская обработка после открытия TDataSet. Нет
AfterPost Пользовательская обработка после посылки записи. Нет
Append Добавить новую пустую запись в конец TDataSet. Нет
AppendRecord Добавить новую запись, задав значения некоторых или всех полей. Нет
ApplyUpdates Записать в набор данных любые изменения в кэшированных данных. Нет
AutoCalcFields Установить, вычисляются ли поля автоматически. Нет
BOF Проверить, находится ли TDataSet в начале. Нет
BeforeCancel Пользовательская обработка перед снятием редактирования записи. Нет
BeforeClose Пользовательская обработка перед закрытием TDataSet. Нет
BeforeDelete Пользовательская обработка перед удалением записи. Нет
BeforeEdit Пользовательская обработка перед редактированием записи. Нет
BeforeInsert Пользовательская обработка перед вставкой записи. Нет
BeforeOpen Пользовательская обработка перед открытием TDataSet. Нет
BeforePost Пользовательская обработка перед посылкой записи. Нет
Bookmark Снабдить запись ярлыком для более легкого поиска. Нет
CachedUpdates Включить/отключить обновление кэш. Нет
CanModify Проверить, можно ли модифицировать TDataSet. Нет
Cancel Отменить редактирование записи. Нет
CancelUpdates Отменить ожидание обновления кэш. Нет
CheckBrowseMode Убедиться, что TDataSet находится в режиме Browse. Нет
ClearFields Инициализировать буфер записи. Нет
Close Закрыть TDataSet. Нет
CommitUpdates Перенести в базу любые изменения в кэшированных данных. Нет
ControlsDisabled Проверить, отключен ли ассоциированный чувствительный к данным компонент. Нет
CursorPosChanged Уведомить об изменении позиции курсора BDE. Нет
DataSource Сослаться на главный DataSource в TDataSet Нет
DefaultFields Указать, имеет ли TDataSet поля по умолчанию. Нет
Delete Удалить текущую запись. Нет
DisableControls Временно отключить обновление отображения ассоциированного чувствительного компонента. Нет
Edit Активизировать режим редактирования для текущей записи. Нет
EnableControls Включить обновление отображения ассоциированного чувствительного компонента. Нет
EOF Проверить, находится ли TDataSet в конце. Нет
ExpIndex Указать, является ли индекс индексным выражением dBASE. Нет
FetchAll Форсировать повторное чтение всего результата множества запросов. Нет
FieldByName Получить TField, ассоциированный с полем базы данных. Нет
FieldCount Получить количество полей в TDataSet. Нет
FieldDefs Получить массив определений полей в TDataSet. Нет
FieldValues Работать со свойством типа массива значений полей как с variants. Нет
Fields Работать с массивом TFields в TDataSet. Нет
Filter Определить выражение фильтра записей. Нет
FilterOptions Установить опции фильтра. Нет
Filtered Активизировать/деактивизировать фильтр. Нет
FindField Получить TField, ассоциированный с полем базы данных. Нет
FindFirst Найти первую запись, удовлетворяющую критерию фильтра. Нет
FindLast Найти последнюю запись, удовлетворяющую критерию фильтра. Нет
FindNext Найти следующую запись, удовлетворяющую критерию фильтра. Нет
FindPrior Найти предыдущую запись, удовлетворяющую критерию фильтра. Нет
First Получить первую запись TDataSet. Нет
Found Проверить, была ли подходящая запись. Нет
FreeBookmark Освободить закладку в TDataSet. Нет
GetBookmark Установить закладку на текущую запись TDataSet. Нет
GetCurrentRecord Получить в буфере памяти текущую запись TDataSet. Нет
GetFieldList Получить список объектов полей, учитывая имена физических полей. Нет
GetFieldNames Получить список имен физических полей в TDataSet Нет
GotoBookmark Перейти на указанную закладку. Нет
Handle Получить доступ к дескриптору курсора BDE, ассоциированному с TDataSet Нет
Insert Перейти в режим редактирования и вставить новую запись. Нет
InsertRecord Вставить новую запись, задав некоторые или все значения полей. Нет
IsLinkedTo Выяснить, связан ли TDataSet с заданным источником данных. Нет
KeySize Получить размер ключа TDataSet в байтах. Нет
Last Перейти на последнюю запись в TDataSet. Нет
Locale Получить драйвер языка TDataSet Нет
Locate Найти запись в соответствии с заданными значениями полей. Нет
Lookup Просмотреть указанные поля в соответствии с заданными значениями полей. Нет
Modified Проверить, были ли модифицированы данные записи. Нет
MoveBy Переместиться в TDataSet вперед или назад на заданное количество записей. Нет
Next Перейти к следующей записи TDataSet Нет
OnCalcFields Вычислить вычисляемые поля TDataSet Нет
OnDeleteError Определить ошибки удаления записи. Нет
OnEditError Определить ошибки редактирования записи. Нет
OnFilterRecord Создать пользовательское фильтрование записей. Нет
OnNewRecord Пользовательская обработка при вставке новой записи. Нет
OnPostError Определить ошибки пересылки записей. Нет
OnServerYield Отменить запрос, выполняющийся длительное время. Нет
OnUpdateError Определить ошибки при обновлении записи. Нет
OnUpdateRecord Пользовательская обработка при обновлении записи кэшированными обновлениями Нет
Open Открыть TDataSet. Нет
Post Послать новую или модифицированную запись в TDataSet Нет
Prior Перейти в TDataSet на предыдущую запись. Нет
RecNo Получить номер текущей записи. Нет
RecordCount Получить количество записей в TDataSet. Нет
RecordSize Получить опорную длину записи в байтах. Нет
Refresh Перечитать запись из базы данных. Нет
Resync Ресинхронизировать все записи. Нет
RevertRecord Отменить изменения в текущей записи за счет кэшированного обновления. Нет
SetDetailFields Установить значения ключей TDataSet с учетом списка объектов полей главного ключа (master key field objects). Нет
SetFields Установить в текущей записи некоторые или все значения полей. Нет
State Получить текущее состояние TDataSet. Нет
UpdateCursorPos Обновить позицию курсора TDataSet. Нет
UpdateObject Управлять ассоциированными кэшированными обновлениями TDataSet операторов SQL Нет
UpdateRecord Уведомить источники данных о том, что обновление записи сейчас будет переслано. Нет
UpdateRecordTypes Управлять типом записей, обновляемых посредством кэш. Нет
UpdateStatus Выяснить состояние кэшированных обновлений. Нет
UpdatesPending Выяснить, существует ли ожидающие кэшированные обновления. Нет

Свойство Active
Метод ActiveBuffer
Событие AfterCancel
Событие AfterClose
Событие AfterDelete
Событие AfterEdit
Событие AfterInsert
Событие AfterOpen
Событие AfterPost
Метод Append
Метод AppendRecord
Метод ApplyUpdates
Свойство AutoCalcFields
Свойство BOF
Событие BeforeCancel
Событие BeforeClose
Событие BeforeDelete
Событие BeforeEdit
Событие BeforeInsert
Событие BeforeOpen
Событие BeforePost
Свойство Bookmark
Свойство CachedUpdates
Свойство CanModify
Метод Cancel
Метод CancelUpdates
Метод CheckBrowseMode
Метод ClearFields
Метод Close
Метод CommitUpdates
Метод ControlsDisabled
Метод CursorPosChanged
Свойство DataSource
Свойство DefaultFields
Метод Delete
Метод DisableControls
Метод Edit
Метод EnableControls
Свойство EOF
Свойство ExpIndex
Метод FetchAll
Метод FieldByName
Свойство FieldCount
Свойство FieldDefs
Свойство FieldValues
Свойство Fields
Свойство Filter
Свойство FilterOptions
Свойство Filtered
Метод FindField
Методы FindFirst
Методы FindLast
Методы FindNext
Методы FindPrior
Метод First
Свойство Found
Метод FreeBookmark
Метод GetBookmark
Метод GetCurrentRecord
Метод GetFieldList
Метод GetFieldNames
Метод GotoBookmark
Свойство Handle
Метод Insert
Метод InsertRecord
Метод IsLinkedTo
Свойство KeySize
Метод Last
Свойство Locale
Метод Locate
Метод Lookup
Свойство Modified
Метод MoveBy
Метод Next
Событие OnCalcFields
Событие OnDeleteError
Событие OnEditError
Событие OnFilterRecord
Событие OnNewRecord
Событие OnPostError
Событие OnServerYield
Событие OnUpdateError
Событие OnUpdateRecord
Метод Open
Метод Post
Метод Prior
Свойство RecNo
Свойство RecordCount
Свойство RecordSize
Метод Refresh
Метод Resync
Метод RevertRecord
Метод SetDetailFields
Метод SetFields
Свойство State
Метод UpdateCursorPos
Свойство UpdateObject
Метод UpdateRecord
Свойство UpdateRecordTypes
Метод UpdateStatus
Свойство UpdatesPending

TDBDataSet
//Объявления
   function CheckOpen(Status: DBIResult): Boolean;
   property Database: TDatabase read FDatabase;
   property DBHandle: HDBIDB read GetDBHandle;
   property DBLocale: TLocale read GetDBLocale;
   property DBSession: TSession read GetDBSession;
   property DatabaseName: string read FDatabaseName write SetDatabaseName;
   property SessionName: string read FSessionName write SetSessionName;
 
TTable
//Объявления
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
   function BatchMove(ASourse: TDataSet; AMode: TBatchMode): Longint;
   procedure Addlndex(const Name, Fields: string; Options: TIndexOptions);
   procedure ApplyRange;
   procedure CancelRange;
   procedure CloselndexFile(const IndexFileName: string);
   procedure CreateTable;
   procedure Deletelndex(const Name: string);
   procedure DeleteTable;
   procedure EditKey;
   procedure EditRangeEnd;
   procedure EditRangeStart;
   procedure EmptyTable;
   function FindKey(const KeyValues: array of const): Boolean;
   procedure FindNearest(const KeyValues: array of const);
   procedure GetlndexNames(List: TStrings);
   procedure GotoCurrent(Table: TTable);
   function GotoKey: Boolean;
   procedure GotoNearest;
   procedure LockTable(LockType: TLockType);
   procedure OpenlndexFile(const IndexName: string);
   procedure RenameTable(const NewTableName: string);
   procedure SetKey;
   procedure SetRange(const StartValues, EndValues: array of const);
   procedure SetRangeEnd;
   procedure SetRangeStart;
   procedure UnlockTable(LockType: TLockType);
   property IndexDefs: TIndexDefs read FIndexDefs;
   property IndexFieldCount: Integer read GetlndexFieldCount;
   property IndexField[Index: Integer]: TField read GetlndexField write SetlndexField;
   property KeyExclusive: Boolean read GetKeyExclusive write SetKeyExclusive;
   property KeyFieldCount: Integer read GetKeyFieldCount write SetKeyFieldCount;
 
published
   property Exclusive: Boolean read FExclusive write SetExclusive default False;
   property IndexFieldNames: string read GetIndexFieldNames write SetIndexFieldNames;
   property IndexFiles: TStrings read FIndexFiles write SetIndexFiles;
   property IndexName: string read GetIndexName write SetIndexName;
   property MasterFields: string read GetMasterFields write SetMasterFields;
   property Mastertource: TDataSource read GetDataSource write SetDataSource;
   property Readonly: Boolean read FReadOnly write SetReadOnly default False;
   property TableName: TFileName read FTableName write SetTableName;
   property TableType: TTableType read FTableType write SetTableType default ttDefault;
   property UpdateMode; property UpdateObject;
 
TStoredProc
//Объявления
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
   procedure CopyParams(Value: TParams);
   function DescriptionsAvailable: Boolean;
   procedure ExecProc;
   function ParamByName(const Value: string): TParam;
   procedure Prepare;
   procedure GetResults;
   procedure UnPrepare;
   property ParamCount: Word read GetParamCount;
   property StmtHandle: HDBIStmt read FStmtHandle;
   property Prepared: Boolean read FPrepared write SetPrepared;
 
published
   property StoredProcName: string read FProcName write SetProcName;
   property OverLoad: Word read FOverLoad write SetOverLoad default 0;
   property Params: TParams read FParams write SetParamsList;
   property ParamBindMode: TParamBindMode read FBindMode write SetBindMode default pbByName;
   property UpdateObject;
 
TQuery
//Объявления
   constructor Create(AOwner: TComponent) ; override;
   destructor Destroy; override;
   procedure ExecSQL;
   function ParamByName(const Value: string): TParam;
   procedure Prepare;
   procedure UnPrepare;
   property Prepared: Boolean read FPrepared write SetPrepared;
   property ParamCount: Word read GetParamCount;
   property Local: Boolean read FLocal;
   property StmtHandle: HDBIStmt read FStmtHandle;
   property Text: string read FText;
   property RowsAffected: Integer read GetRowsAffected;
   property SQLBinary: PChar read FSQLBinary write FSQLBinary;
 
published
   property Constrained: Boolean read FConstrained write FConstrained default False;
   property DataSource: TDataSource read GetDataSource write SetDataSource;
   property Params: TParams read FParams write SetParamsList;
   property ParamCheck: Boolean read FParamCheck write SetParamCheck default True;
   property RequestLive: Boolean read FRequestLive write FRequestLive default False;
   property SQL: TStrings read FSQL write SetQuery;
   property UniDirectional: Boolean read FUniDirectional write FUniDirectional default False;
   property UpdateMode;
   property UpdateObject;

<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36.shtml