Рефераты. Компоненты для работы с БД: TTable и TQuery p> Методы:

|procedure Append; |Добавляет пустую запись в конец НД |
|procedure AppendRecord(const Values: |Добавляет новую запись, заполняет ее |
|Array of const); |поля значениями Values и отсылает ее в |
| |БД |
|procedure ApplyUpdates; |Записывает кэш обновления в таблицы БД |
|procedure Cancel; |Отменяет все изменения текущей записи, |
| |которые не были сохранены в БД |
|procedure CancelUpdates; |Очищает кэш обновления |
|procedure CheckBrowseMode; |Если НД находился в состоянии |
| |редактирования или вставки, вызывает |
| |метод Post для записи изменений в БД |
|procedure ClearFields; |Очищает все поля текущей записи |
|procedure Close; |Закрывает НД |
|procedure |Закрывает базу данных Database |
|CloseDatabase(Database:TDatabase); | |
|procedure CommitUpdates; |Очищает кэш после успешного обновления |
| |данных в БД |
|function ControlsDisabled: Boolean; |Возвращает True, если показ данных в |
| |визуальных компонентах временно |
| |запрещен методом DisableControls |
|procedure Delete; |Удаляет текущую запись |
|function DisableControls; |В целях улучшения производительности |
| |при навигации по НД временно запрещает |
| |смену данных в визуальных компонентах |
|procedure Edit; |Редактирует текущую запись |
|procedure EnableCointrols; |Отменяет действие метода |
| |DisableControls |
|function FieldByName(const FieldName: |Обеспечивает доступ к полю по его имени|
|String):TField; |FieldName |
|function FindField(const FieldName: |Ищет поле FieldName в НД и возвращает |
|String):TField; |ссылку на поле или NIL, если поле не |
| |найдено |
|function FindFirst: Boolean; |Пытается установить курсор на первую |
| |запись НД и возвращает True в случае |
| |успеха |
|function FindLast: Boolean; |Пытается установить курсор на последнюю|
| |запись НД и возвращает True в случае |
| |успеха |
|function FindNext: Boolean; |Пытается установить курсор на следующую|
| |запись НД и возвращает True в случае |
| |успеха |
|function FindPrior: Boolean; |Пытается установить курсор на |
| |предыдущую запись НД и возвращает True |
| |в случае успеха |
|function First: Boolean; |Устанавливает курсор на первую запись в|
| |НД |
|procedure FreeBookMark(BookMark: |Освобождает память связанную с |
|TBookMark); virtual; |закладкой BookMark |
|function GetBookMark: TBookMark; |Создает закладку на текущей записи и |
|virtual; |возвращает указатель на нее |
|procedure GotoBookMark(BookMark: |Обеспечивает возврат к записи, |
|TBookMark); |связанной с закладкой BookMark |
|procedure Insert; |Переводит НД в режим вставки записей |
|procedure InsertRecord(const Values: |Создает пустую запись, наполняет ее |
|array of const); |поля значениями Values и вставляет ее в|
| |НД |
|function isEmpty: Boolean; |Возвращает True, если в НД нет записей |
|procedure Last; |Устанавливает курсор на последнюю |
| |запись |
|function Locate(const KeyFields: |Ищет в полях перечисленных в параметре |
|String; const KeyValues: Variant; |KeyFields, значения, указанные в |
|Options: TLocateOptions): Boolean; |KeyValues при условиях, заданных |
| |параметром Options. Если запись |
| |найдена, делает ее текущей и возвращает|
| |True |
|function LookUp(const KeyFields: |Используется в детальных НД для поиска |
|String; const KeyValues: Variant; |в полях KeyFields значений KeyValues. |
|const ResultFields: String): Variant; |При успехе возвращает значение полей |
| |ResultFields |
|function MoveBy(Distance: |Перемещает курсор на Distance записей |
|Integer):Integer; |вверх или вниз относительно текущей |
| |записи |
|procedure Next; |Перемещает курсор к следующей записи |
|procedure Open; |Открывает НД |
|procedure Post; virtual; |Сохраняет вставленную или |
| |отредактированную запись в таблице БД |
|procedure Prior; |Перемещает курсор к предыдущей записи |
|procedure Refresh; |Обновляет НД данными из БД |
|procedure SetFields (const Values: |Устанавливает значения Values во все |
|array of const); |поля текущей записи |

События:

|type TDataSetNotifyEvent = procedure | |
|(DataSet: TDataSet) of object | |
|property AfterCancel: |Возникает сразу после отмены изменений в |
|TDataSetNotifyEvent; |текущей записи |
|property AfterClose: |Возникает сразу после закрытия НД |
|TDataSetNotifyEvent; | |
|property AfterDelete: |Возникает сразу после удаления текущей |
|TDataSetNotifyEvent; |записи |
|property AfterEdit: |Возникает сразу после перехода НД в режим |
|TDataSetNotifyEvent; |редактирования |
|property AfterInsert: |Возникает сразу после вставки записи |
|TDataSetNotifyEvent; | |
|property AfterOpen: |Возникает сразу после открытия НД |
|TDataSetNotifyEvent; | |
|property AfterPost: |Возникает сразу после выполнения метода |
|TDataSetNotifyEvent; |Post |
|property AfterScroll: |Возникает сразу после перехода к другой |
|TDataSetNotifyEvent; |записи |
|property BeforeCancel: |Возникает непосредственно перед отменой |
|TDataSetNotifyEvent; |изменений в текущей записи |
| |Возникает непосредственно перед закрытием |
|property BeforeClose: |НД |
|TDataSetNotifyEvent; | |
|property BeforeDelete: |Возникает непосредственно перед удалением |
|TDataSetNotifyEvent; |текущей записи |
|property BeforeEdit: |Возникает непосредственно перед переходом |
|TDataSetNotifyEvent; |НД в режим редактирования |
|property BeforeInsert: |Возникает непосредственно перед в режим |
|TDataSetNotifyEvent; |вставки |
|property BeforeOpen: |Возникает непосредственно перед открытием |
|TDataSetNotifyEvent; |НД |
|property BeforePost: |Возникает непосредственно перед |
|TDataSetNotifyEvent; |выполнением метода Post |
|property BeforeScroll: |Возникает непосредственно перед к новой |
|TDataSetNotifyEvent; |записи |
|property OnCalcFields: |Возникает при необходимости |
|TDataSetNotifyEvent; |переопределения вычисляемых полей |

4. Обзор компонента TTable

Так как компонент TTable является наследником класса TDataSet, он наследует все его свойства, методы и события. Он служит для работы с таблицами БД.

Следующие методы позволяют изменять данные, связанные с TTable:

procedure Append; procedure Insert; procedure Cancel; procedure Delete; procedure Edit; procedure Post;

Все эти методы - часть TDataSet, они унаследованы и используются TTable и TQuery.

Всякий раз, когда нужно изменить данные, необходимо сначала перевести
DataSet в режим редактирования или вставки.

Имеется типичная последовательность, которую можно бы использовать при изменении поля текущей записи:

Table1.Edit;

Table1.FieldByName(‘CustName’).AsString := ‘Fred’;

Table1.Post;

Первая строка переводит БД в режим редактирования. Следующая строка присваивает значение ‘Fred’ полю ‘CustName’. Наконец, данные записываются на диск, когда вызывается Post.

При использовании такого подхода, Вы всегда работаете с записями. Сам факт перемещения к следующей записи автоматически сохраняет данные на диск.
Например, следующий код будет иметь тот же самый эффект, что и код показанный выше, плюс этому будет перемещать курсор на следующую запись:

Table1.Edit;

Table1.FieldByName(‘CustNo’).AsInteger := 1234;

Table1.Next;

Общее правило, которому нужно следовать - всякий раз, когда курсор сдвигается с текущей записи, введенные данные будут записаны автоматически.
Это означает, что вызовы First, Next, Prior и Last всегда выполняют Post.
Можете отменить результаты редактирования в любое время, до тех пор, пока не вызвали напрямую или косвенно метод Post. Например, если НД переведен в режим редактирования, и данные были изменены в одном или более полей, всегда можно вернуть запись в исходное состояние вызовом метода Cancel.

Существуют два метода, Append и Insert, который используются при добавлении новой записи в DataSet. Очевидно имеет больше смысла использовать Append для DataSets которые не индексированы, но Delphi не будет генерировать exception если используется Append на индексированной таблице. Фактически, всегда можно использовать и Append, и Insert.

Пример добавления записи:

begin

Table1.Insert;

Table1.FieldByName('Name').AsString := 'Иван';

Table1.FieldByName('Fam').AsString := 'Сидоров';

Table1.Post; end;

Удаление записи: Table1.Delete;

Процедура показанная здесь сначала переводит таблицу в режим вставки
(новая запись с незаполненными полями вставляется в текущую позицию dataset). После вставки пустой записи, следующим этапом нужно назначить значения одному или большему количеству полей. Существует, конечно, несколько различных путей присвоить эти значения. В программе можно просто ввести информацию в новую запись через DBGrid. Или разместить на форме стандартную строку ввода (TEdit) и затем установить каждое поле равным значению, которое пользователь напечатал в этой строке:

Table1.FieldByName(‘Name’).AsString := Edit1.Text;

Можно использовать компоненты, специально предназначенные для работы с данными в DataSet, например DBEdit, DBLabel и т.д.

5. Обзор компонента TQuery

Сокращение SQL означает Structured Query Language - Язык
Структурированных Запросов, и обычно произноситься либо как "Sequel" либо
" Ess Qu El”. SQL - это мощный язык БД, который легко доступен из Delphi, но который отличается от родного языка Delphi. Delphi может использовать утверждения SQL для просмотра таблиц, выполнять объединение таблиц, создавать отношения один-ко-многим, или исполнить почти любое действие, которое могут сделать основные инструменты БД.

1. Большинство серверов могут обрабатывать SQL запросы очень быстро, а это означает, что используя SQL для удаленных данных, ответ будет получен очень быстро.
1. Есть возможность составлять SQL запросы, которые заставят сервер исполнить специализированные задачи, недоступные через родной язык

Delphi.

SQL запрос можно создать используя компонент TQuery следующим способом:

1. Назначить Псевдоним (Alias) DatabaseName.
1. Используя свойство SQL чтобы ввести SQL запрос типа

“Select * from Country”.
2. Установить свойство Active в True

Если обращение идет к локальным данным, то вместо псевдонима можно указать полный путь к каталогу, где находятся таблицы.

Объект TQuery один из наиболее полезных и гибких компонентов, доступных в Delphi. С помощью можно воспользоваться всей мощью, предоставляемой лидерами среди промышленных SQL серверов, вроде InrterBase, Oracle или
Sybase.

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.