Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа
Класс TList -- универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются -- эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса.
procedure GetTableNames(const DatabaseName, Pattern: String; Extensions, SystemTables: Boolean; List: TStrings) ; |
Очищает список List и заполняет его именами всех таблиц базы данных, имя которой определяется параметром DatabaseName. Параметр Pattern задает шаблон отбора имен таблиц. Параметр Extensions в состоянии True позволяет добавлять к именам таблиц расширения файлов. Параметр SystemTables в состоянии True позволяет добавлять к списку системные таблицы серверов SQL. |
procedure GetStoredProcNames(const TStrings) ; |
Заполняет список List именами всех хранимых процедур для SQL-сервера, задаваемого параметром DatabaseName. |
function OpenDatabase(const DatabaseName: String): TDatabase; |
Открывает существующий компонент TDatabase или создает новый, используя параметр метода DatabaseName. Возвращает указатель на экземпляр компонента. |
|
Уничтожает всю ранее введенную информацию о паролях для Paradox. |
procedure RemovePasswordfconst Password: String); |
Удаляет пароль, определяемый параметром Password метода для таблиц Paradox. |
Компонент TDatabase
TObject-"TPersistent->
Модуль DB
Страница Палитры компонентов Data Access
Не используется при создают обычных приложений, работающих с базами данных, однако незаменим в приложениях клиент/сервер. В его функции входят:
* установление постоянной связи с базой данных;
* задание параметров сервера;
* создание локальных псевдонимов BDE;
* управление транзакциями.
Свойства компонента
(Pb) property AliasName: TSymbolStr; TSymbolStr = String[DBIMAXNAMELEN] ; DBIMAXNAMELEN = 31; |
Имя псевдонима, заданного утилитой конфигурации BDE. Значение этого свойства обнуляется при установке свойства DriverName. Используется для связывания с определенным сервером. |
ipb) property Connected: Boolean; |
Управляет процессом соединения компонента с базой данных. В состоянии True разрешает соединение и открытие таблиц. Работает совместно со свойством Keep Connection. |
(Pb) property DatabaseName: TFileName; TFileName: String[79]; |
Задает псевдоним присоединяемой базы данных для приложения, который может использоваться компонентами наборов данных (TTable, TQuery) и отображается в их свойстве DatabaseName. |
(Ro) property DatasetCount: Integer; |
Отражает число компонентов наборов данных, используемых невизуальным компонентом TDatabase. |
(Ro) property Datasets[Index: Integer]: TDBDataset; |
Массив указателей на экземпляры компонентов присоединенных наборов данных. |
(Pb) property DriverName: TSymbolStr; |
Имя используемого приложением драйвера BDE. Это свойство обнуляется при определении свойства AliasName. |
(ro) property Handle: HDBIDB; |
Указатель на базу данных, используется для прямого вызова функции API BDE. |
(Ro) property IsSQLBased: Boolean; |
Отражает тип используемого драйвера, зависит от свойства DriverName. Состояние True разрешает использование любого драйвера, кроме STANDARD. |
(Pb) property KeepConnection: Boolean; |
В значении True задает постоянное соединение с базой данных даже при отсутствии открытых наборов данных. При выключенном свойстве для регистрации на сервере необходимо пользоваться свойством Connected для каждого открытия таблицы. |
(Ro) property Locale: TLocale; |
Определяет используемый компонентом языковый драйвер. Позволяет осуществлять прямой доступ к API BDE. |
(Pb) property LoginPrompt: Boolean; |
В стандартном значении True определяет, что при установке соединения с базой данных будет появляться диалоговое окно регистрации пользователя. В значении False регистрационные сведения должны содержаться в полях свойства Params. |
(Pb) property Params: TStrings; |
Содержит параметры, необходимые для подключения к базам данных. По умолчанию это значение свойства устанавливается в соответствие с информацией утилиты конфигурации BDE. |
property Temporary: Boolean; (Pb) property Translsolation: TTransIeolation; |
Определяет способ создания компонента. True означает, что компонент создается только при открытии таблицы и будет уничтожен при ее закрытии. Если затем свойство установить в False, то компонент будет сохранен. Если при создании компонента свойство было установлено в False, то переопределение в True будет означать уничтожение компонента после закрытия последней таблицы. |
Определяет уровень изоляции транзакции и используется SQL-сервером. Значение tiDirtyRead разрешает транзакции читать незавершенные изменения, проведенные другой транзакцией; tiReadCommit открывает доступ к изменениям после завершения транзакции; tiRepeatableRead полностью изолирует транзакцию. |
Методы компонента
procedure Close; |
Отсоединяет все связанные с ним компоненты TTable TQuery и TStoredProc. |
procedure CloseDatasets; |
Отсоединяет все дочерние компоненты класса TDataSet, но сам компонент остается открытым. |
procedure Commit; |
Фиксирует все изменения, проведенные транзакцией. Этот метод можно использовать только при наличии связи с базой данных. |
procedure Open; |
Соединяет компонент с сервером или BDE в случае использования СУБД Paradox или dBase. |
procedure Rollback; |
Отменяет все действия, совершенные транзакцией, то есть запрещает ее фиксацию. |
procedure StartTransaction; |
Начинает выполнение транзакции, используя уровень изоляции из свойства Translsolation. Этот метод рекомендуется использовать только при наличии связи с базой данных. |
Компонент TDataSource
TObject-->TPersistent--"
Модуль DB
Страница Палитры компонентов Data Access
Является связующим звеном между наборами данных, представленных компонентами TTable, TQuery и TStoredProc, и визуальными компонентами отображения и управления данными. Каждый набор данных должен иметь по меньшей
мере один компонент TDataSource, так как TTable и TQuery устанавливают соединение с базой данных через BDE, но не умеют отображать полученную информацию в формах приложения. Визуальные компоненты отображают данные, но не имеют представления о структуре передаваемых таблиц. Именно это противоречие устраняет компонент TDataSource. Кроме этого, он применяется для связывания таблиц или запросов при построении односвязных форм в Эксперте форм баз данных.
Свойства компонента
(Pb) property AutoEdit: Boolean; |
Разрешает или запрещает изменение данных визуальными компонентами, связанными с TDataSource. В предопределенном состоянии -- True, запись разрешена. |
(РЙ property Dataset: TDataSet; |
Определяет связанные компоненты TTable, TQuery и TStoredProc. |
(Pb) property Enabled: Boolean; |
Определяет, проводить ли модификацию записей связанной таблицы в визуальных компонентах при изменении текущей записи. |
(Ro) property State: TDataSetState; |
Задает текущее состояние для связанного компонента набора данных. Это свойство должно быть установлено в соответствие со свойством State связанного компонента набора данных. Возможные значения: dsBrowse, dsCalcField, dsEdit, dslnactive, dslnsert, dsSetKey. При свойстве Enabled в значении False или не определенном значении свойства Dataset свойство State должно устанавливаться в значение dslnactive. Подробно возможные состояния описываются в конце раздела. |
Обработчики событий
(Pb) property OnDataChange: TDataChangeEvent ; TDataChangeEvent = procedure(Sender: TObject; Field: TField) of object; |
Вызывается при обработке сообщения визуальных компонентов отображения и управления данными о любых изменениях или при переопределении свойства State в любое состояние из dslnactive. Передаваемый параметр Field определяет измененное поле, при модификации нескольких полей (записи) одновременно устанавливается в nil. |
(Pb) property OnStateChange: TNotifyEvent; |
Вызывается при изменении свойства State. |
(Pb) property OnUpdateData: TNotifyEvent; |
Реагирует на методы Post и UpdateData (см. ниже) компонентов наборов данных и передает сообщение визуальным компонентам отображения и управления данными о необходимости изменения соответствующих полей. |
Методы компонента
procedure Edit; |
Предназначена только для вызова аналогичного метода компонента набора данных. Используется при свойствах AutoEdit = True и State = dsBrowse. |
Компонент TTable
TObject->TPersistent->
Модуль DBTABLES
Страница Палитры компонентов Data Access
Играет важную роль в приложениях, работающих с базами данных. Он предназначен для соединения таблиц баз данных через BDE с приложением (компонентом TDataSource). Через него идет и обратная связь. С одним компонентом TTable может быть связано несколько TDataSource, но обратное неверно. TTable имеет мощный набор свойств и методов для управления набором данных.
Свойства компонента
(Pb) property Active: Boolean; (Pb) property AutoCalcField: Boolean; |
Регулирует доступ к данным. При значении True открывает набор данных и устанавливает его в состояние Browse, в противном случае устанавливается состояние Inactive. |
Определяет вызов обработчика события OnCalcField. В значении True метод вызывается всегда при редактировании полей. | |
(Ro) property BOF: Boolean; (Ro) property CanModify: Boolean; |
Сообщает о нахождении курсора в первой записи набора данных. |
Устанавливает возможность изменения данных. | |
(Ro) property Database: TDatabase; |
Идентифицирует компонент TDatabase, связанный с TTable. |
(Pb) property DatabaseName: TFil-Name; |
Определяет доступ к базе данных. Может задаваться в виде псевдонима BDE, пути к файлам, специфического псевдонима приложения. |
(Ro) property DBHandle: HDBIDB; (Ro) property DBLocale: TLocale; |
Определяет дескриптор базы данных, необходимый, в частности, для организации вызова функций API BDE из приложения. |
Задает языковый драйвер для BDE. | |
(Bg property EOF: Boolean; |
Сообщает о нахождении курсора в последней записи набора данных. |
(Pb) property Exclusive: Boolean; |
Используется для установки полного контроля над открываемой таблицей и предотвращения доступа к ней других пользователей. Перед работой с этим свойством необходимо задать свойству Active значение False. При попытке открытия уже используемой другими таблицы с Exclusive = True возникает исключительная ситуация. Свойство полезно при создании приложений для систем, использующих разделяемые файлы. Сообщает о числе колонок таблицы, используется визуальными компонентами отображения данных. |
(бо) property FieldCount: Integer; | |
Wo) property FieldDefs: TFieldDefs; |
Содержит информацию о каждом объекте TFieldDef (см. ниже), связанном с компонентом таблицы. |
(Ro) property Fields[Index: Integer]: TField; |
Позволяет получить информацию о полях таблицы. |
(ro) property Handle: HDBICur; |
Дескриптор компонента, позволяет получить доступ к функциям API BDE. |
(Ro) property IndexDefs: TIndexDefs; |
Позволяет получить информацию обо всех используемых компонентом индексах. Перед использованием свойства необходимо вызывать метод Update объекта TIndexDefs для обновления данных. |
(Ro) property IndexFieldCount: Integer; |
Означает число действительных полей для текущего индекса. |
(ВД property IndexFieldNames: String; |
Используется SQL-сервером для идентификации полей, являющихся индексами. Имена полей разделяются точкой с запятой и не должны содержать более 255 символов. Здесь могут быть описаны не только физические индексы (хранимые в индексных файлах), но и создаваемые на время выполнения приложения. |
(Pb) property IndexName: String; |
Определяет вторичный индекс. Установка свойства приводит к обнулению свойства IndexFieldNames. |
(Ro) property IndexFields[Index: Integer] ^Fields- |
Содержит информацию обо всех полях текущего индекса. |
property KeyExclusive: Boolean; |
Определяет, исключать ли из рассмотрения возвращаемые функциями сортировки и поиска записи. Значение по умолчанию -- False. Для методов SetRangeStart и SetRangeEnd определяет включающие или исключающие границы диапазона значений. Для методов GoToNearest и FindNearest определяет место нахождения курсора. |
property KeyFieldCount: Integer; |
|
|
Определяет число ключевых полей для поиска. я | ||
(Ro) property Locale: TLocale; |
Идентификатор языкового драйвера для BDE. | |
(Pb) property MasterFields: String; TDataSource; |
Задает имена полей для связи подчиненной таблицы с главной таблицей. При необходимости определить несколько полей, их имена разделяются точкой с запятой. При изменении номеров записей в главной таблице, значения в полях используются для выборки записей из подчиненной таблицы. |
|
Определяет компонент TDataSource, который представляет главную таблицу. |
| |
(Ro) property Modified: Boolean; | ||
Показывает, проводились ли изменения в полях записи с момента открытия таблицы или вызова методов Post или Cancel. |
| |
(№;) property Readonly: Boolean; |
Устанавливает режим "Только для чтения". Перед использованием необходимо установить свойство Active в False. |
|
(Ro) property RecordCount: Longint; |
Отображает число записей в наборе данных. | |
(Ro) property State: TDataSetSCate; (Pb) property TableName: TFileName; |
Показывает текущее состояние набора данных (см. аналогичное свойство компонента TDataSource). Значение этого свойства важно при использовании многих методов компонента. | |
Содержит имя таблицы, используемой компонентом. | ||
(Pb) property TableType: TTableType; |
Определяет тип используемой таблицы в соответствии с расширением файла (режим Default) или типом TTableType, который содержит следующие значения: ttDefault, "Paradox, "DBase, "ASCII. | |
(Pb) property UpdateMode: TUpdateMode; |
P Определяет способ обновления данных при работе с базами SQL и задает поля, которые используются для поиска записи в базе. Возможны следующие значения: Where All -- использует все поля; WhereKeyOnly -- использует только ключевые поля; WhereChanged -- использует ключевые и измененные поля записи. Наиболее жестким, предпочтительным и надежным является режим WhereAll (устанавливается по умолчанию). | |
|
Обработчики событий
Делятся на две большие группы: вызываемые до (Before) и после (After) методов Open, Insert, Edit, Post, Delete, Cancel и Close. Информацию об этих группах можно получить, используя справочную систему Delphi. Кроме этого существуют еще два обработчика:
(РЙ property OnCalcFields: TDataSetNotifyEvent ; TDataSetNotifyEvent = procedure (DataSet: TDataSet) of object; |
Используется для определения значений вычисляемых полей и вызывается при чтении записи из базы. При свойстве AutoCalcFields = True этот обработчик вызывается при изменении значений невычисляемых полей, если установлено состояние EdsEdit или Edslnsert. При выполнении процедуры набор данных должен находиться в состоянии CalcFields. |
(РЙ property OnNewRecord: TDataSetNotifyEvent; |
Реагирует на добавление в набор данных новой записи. Позволяет редактировать новые записи без изменения свойства Modified, |
Методы компонента
procedure Addlndex(const Name, Fields: String; Options: TIndexOptions); TIndexOptions = set of (ixPrimary, ixUnique, ixDescending, ixNonMaintained, ixCaseInsensitive); |
Создает новый индекс для компонента. Параметры: Name -- название индекса, Fields -- поля индекса, Options -- опции типа TIndexOptions (см. примеч. 1). |
procedure ApplyRange; |
Проводит фильтрацию записей таблицы. Подмножество отбора определяется методами SetRangeStart и SetRangeEnd или EditRangeStart и EditRangeEnd. |
procedure Append; |
Предназначена для включения в таблицу новых записей. Метод позиционирует курсор в конец набора, переводит его в состояние Insert и открывает новую пустую запись. |
procedure AppendRecord(const Values: array of const) ; |
Добавляет к таблице новую непустую запись, данные для полей определяются параметром Values. Порядок следования сохраняется. Если число элементов параметра меньше числа полей, то оставшиеся поля устанавливаются в NULL. Типы элементов параметра Values должны совпадать с типами полей. |
function BatchMove(ASource: TDataSet; AMode: TBatchMode): Longint; |
Добавляет, удаляет, копирует или обновляет группы записей. Параметры: ASource задает источник записи, AMode -- используемый режим. Режим определяется типом TBatchMode: batAppend, batUpdate, batAppendUpdate, batDelete, batCopy. Функция возвращает число обработанных записей. |
procedure Cancel; |
Переводит набор данных в состояние dsBrowse и отменяет любые изменения для текущей записи. |
procedure CancelRange; |
Отменяет фильтрацию записей таблицы, задаваемую функциями ApplyRange и SetRange. |
procedure CheckBrowseMode; |
Производит проверку открытия набора данных и отсутствия предполагаемых изменений. Если набор данных закрыт, выводится соответствующее сообщение об ошибке. Если компонент находится в состоянии dsEdit, dslnsert или dsSetKey, то вызывается метод Post для передачи в базу данных любых накопленных изменений. |
procedure ClearFields; |
Возвращает всем полям текущей записи исходные значения. Набор данных должен находиться в состоянии dsEdit. |
Закрывает набор данных. Аналогична установке свойства Active в False. | |
procedure CreateTable; procedure CursorPosChanged; * procedure Delete; procedure String) ; |
Создает новую пустую таблицу. Перед вызовом метода необходимо установить необходимые значения свойств DatabaseName, TableName, TableType, FieldDefs и IndexDefs. Используется для передачи сообщения компоненту TDataSet об изменении положения курсора функциями API BDE. Эта процедура используется при определенном свойстве Handle. Удаляет из таблицы текущую запись, устанавливая курсор на последующую. |
Удаляет вторичный индекс. Параметр Name -- название индекса. Для использования метода необходимо установить свойство Exclusive в True. | |
procedure DeleteTable; |
Уничтожает таблицу, определяемую свойствами DatabaseName, TableName, TableType. |
procedure DisableControls; |
Временно приостанавливает соединение набора данных со всеми связанными компонентами TDataSource. В результате прерывается связь с визуальными компонентами. Существует метод обратного действия -- EnableControls. |
|
Устанавливает свойство State в dsEdit и подготавливает текущую запись к модификации. |
procedure EditKey; |
Предназначена для корректировки содержимого буфера ключей поиска. Используется только для .поиска на многих полях после вызова метода SetKey. Для перемещения в найденное поле используется метод GotoKey. He очищает буфер ключей поиска после использования. |
procedure EditRangeEnd; |
П 6 Позволяет переопределить порядок отбора записей, установленный методом SetRangeEnd. Модифицируется набор ключей конца последовательности. Новый порядок может быть реализован методом ApplyRange. Для таблиц Paradox и dBase метод применим только для индексированных полей, а для баз SQL -- для всех колонок, определенных свойством IndexFieldNames. |
|