Компоненты для работы с базами данных: TTable и TQueryРефераты >> Программирование и компьютеры >> Компоненты для работы с базами данных: TTable и TQuery
События:
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 для удаленных данных, ответ будет получен очень быстро.