Реферат: Компоненты для работы с БД: TTable и TQuery
while not Table1.EOF do
Table1.Next;
end;
EOF возвращает True в следующих трех случаях:
· После того, как файл был открыт;;
· После того, как вызвался метод TDataSet.Last;
· После того, как не выполнился вызов метода TDataSet.Next
Единственная навигационная процедура, которая еще не упоминалась - MoveBy, которая позволяет переместиться на N записей вперед или назад в таблице. Если необходимо переместиться на две записи вперед, то следует написать следующий оператор:
MoveBy(2);
или
MoveBy(-2);
Prior и Next - это простые функции, которые вызывают MoveBy.
При использовании этой функции необходимо всегда помнить, что DataSet - это изменяющиеся объекты, и запись, которая была пятой по счету в предыдущий момент, теперь может быть четвертой или шестой или вообще может быть удалена...
Поля
В большинстве случаев, когда нужно получить доступ из программы к индивидуальные полям записи, можно использовать одно из следующих свойств или методов, каждый из которых принадлежат TDataSet:
property Fields[Index: Integer];
function FieldByName(const FieldName: string): TField;
property FieldCount;
Свойство FieldCount возвращает число полей в текущей структуре записи. Если необходимо программным путем прочитать имена полей, то используется свойство Fields для доступа к ним:
var
S: String;
begin
S := Fields[0].FieldName;
end;
Короче говоря, индекс передаваемый в Fields (начинающийся с нуля), и определяет номер поля к которому Вы получите доступ, т.е. первое поле - ноль, второе один, и так далее.
Если Вы хотите прочитать текущее содержание конкретного поля конкретной записи, то используется свойство Fields или метод FieldsByName . Для того, чтобы найти значение первого поля записи, прочитайте первый элемент массива Fields :
S := Fields[0].AsString;
Предположим, что первое поле в записи содержит номер заказчика, тогда код, показанный выше, возвратил бы строку типа “1021”, “1031” или “2058”. Если нужно получить доступ к этот переменный, как к числовой величине, тогда надо использовать AsInteger вместо AsString. Аналогично, свойство Fields включают AsBoolean, AsFloat и AsDate.
Можно использовать функцию FieldsByName вместо свойства Fields :
S := FieldsByName(‘CustNo’).AsString;