Разработка баз данных в Delphi. 11 Уроков



         

 Поля - часть 2


Давайте посмотрим на простом примере, как можно использовать доступ к полям таблицы во время выполнения программы. Создайте новый проект, положите на форму объект TTable, два объекта ListBox и две кнопки - “Fields” и “Values” (см рис.4).

          Соедините объект TTable с таблицей CUSTOMER, которая поставляется вместе с Delphi (DBDEMOS), не забудьте открыть таблицу (Active = True).

Рис.4: Программа FLDS показывает, как использовать свойство Fields.

Сделайте Double click на кнопке Fields и создайте a метод который выглядит так:

procedure TForm1.FieldsClick(Sender: TObject);

var

  i: Integer;

begin

  ListBox1.Clear;

  for i := 0 to Table1.FieldCount - 1 do

    ListBox1.Items.Add(Table1.Fields[i].FieldName);

end;

Обработчик события начинается с очистки первого ListBox1, затем он проходит через все поля, добавляя их имена один за другим в ListBox1. Заметьте, что цикл показанный здесь пробегает от 0 до FieldCount - 1. Если Вы забудете вычесть единицу из FieldCount, то Вы получите ошибку “List Index Out of Bounds”, так как Вы будете пытаться прочесть имя поля которое не существует.

          Предположим, что Вы ввели код правильно, и заполнили ListBox1 именами всех полей в текущей структуре записи.

          В Delphi существуют и другие средства которые позволяют Вам получить ту же самую информацию, но это самый простой способ доступа к именам полей в Run Time.

          Свойство Fields позволяет Вам получить доступ не только именам полей записи, но также и к содержимому полей. В нашем примере, для второй кнопки напишем:

procedure TForm1.ValuesClick(Sender: TObject);

var

  i: Integer;

begin

  ListBox2.Clear;

  for i := 0 to Table1.FieldCount - 1 do

    ListBox2.Items.Add(Table1.Fields[i].AsString);

end;

Этот код  добавляет содержимое каждого из полей во второй listbox. Обратите внимание, что вновь счетчик изменяется от нуля до FieldCount - 1.

          Свойство Fields позволяет Вам выбрать тип результата написав Fields[N].AsString. Этот и несколько связанных методов обеспечивают a простой и гибкий способ доступа к данным, связанными с конкретным полем. Вот список доступных методов который Вы можете найти в описании класса TField:




Содержание  Назад  Вперед