530______________________________________________Глава 9

Помимо AsString имеются еще аналогичные свойства Aslnteger, AsFloat, As-
Boolean, AsDateTime. Свойство Aslnteger осуществляет преобразования между
типом данного поля и целым 32-битным числом, свойство AsFloat делает то же са-
мое для действительных чисел с плавающей запятой, свойство AsBoolean — для
булевых значений, свойство AsDateTime — для значений дат и времени в приня-
том в C++Builder формате TDateTime.

В некоторых случаях вам может потребоваться узнать тип данного поля. Вы
можете это узнать из свойства объекта поля DataType, которое может принимать
значения: ftUnknown (неизвестное), ftAutoInc (автоматически нарастающее),
ftString (строка) и т.д.

9.11.5 Методы навигации

Наборы данных имеют ряд методов, позволяющих осуществлять навига-
цию — перемещение по таблице:

First              Перемещение к первой записи
Last               Перемещение к последней записи
Next              Перемещение к следующей записи
Prior              Перемещение к предыдущей записи

MoveTo(int i)       Перемещение к концу (при i>0) или к началу (при i<0)
на i записей

Любое перемещение по набору, находящемуся в состоянии dsEdit, автомати-
чески вызывает метод Post, который пересылает текущую запись, если она была
изменена, в базу данных. И после этого уже невозможно применить метод Cancel
для уничтожения изменений. Поэтому надо принимать меры, чтобы в наборе дан-
ных, находящемся в состоянии dsEdit, перед любым перемещением происходила
проверка правильности данных (в разделе 9.11.2 было показано, как это можно
сделать), или перемещаться по набору в каком-то другом состоянии (например, в
dsBrowse).

При перемещениях можно совершить ошибку, выйдя за пределы имеющихся
записей. Например, если вы находитесь на первой записи и выполняете метод Pri-
or, то вы выйдете за начало таблицы, а если вы находитесь на последней записи и
выполняете метод Next, то вы окажетесь после последней записи. Чтобы контро-
лировать начало и конец таблицы, существуют два свойства: Eof (end-of-file) — ко-
нец данных, и Bof (beginning of file) — начало данных. Эти свойства становятся
равными true, если делается попытка переместить курсор соответственно за преде-
лы последней или первой записи, а также после выполнения методов соответствен-
но Last и First.

Приведем пример. Пусть в вашем приложении имеется выпадающий список с
именем CBdep, который вы хотите заполнить данными, содержащимися в полях
Dep всех записей таблицы, соединенной с компонентом Tablel. Это можно сделать
следующим кодом:

CBdep->Clear();

Tablel->First();

while (!Tablel->Eof)
{

CBdep->Items->Add(TablelDep->AsString) ;

Tablel->Next();

)
CBdep->ItemIndex = 0;

Tablel->First();