Советы по Delphi

         

Полный слепок полей таблицы


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

Приведенный ниже пример демонстрирует технологию полного воспроизведения доступных полей в компоненте TTable или TQuery. Программа извлекает информацию о доступных полях и отображает ее в компоненте TListBox; эта информация необходима для динамического построения потомков TField. В данном примере источником данных служит компонент TTable, но той же цели может служить и TQuery (TTable и TQuery для доступа к полям таблицы используют одно и то же свойство Fields).

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;F: TFieldDef;D: String;begin
Table1.Active := True;ListBox1.Items.Clear;
with Table1 do beginfor i := 0 to FieldDefs.Count - 1 do beginF := FieldDefs.Items[i];case F.DataType offtUnknown: D := 'Unknown';ftString: D := 'String';ftSmallint: D := 'SmallInt';ftInteger: D := 'Integer';ftWord: D := 'Word';ftBoolean: D := 'Boolean';ftFloat: D := 'Float';ftCurrency: D := 'Currency';ftBCD: D := 'BCD';ftDate: D := 'Date';ftTime: D := 'Time';ftDateTime: D := 'DateTime';ftBytes: D := 'Bytes';ftVarBytes: D := '';ftBlob: D := 'BLOB';ftMemo: D := 'Memo';ftGraphic: D := 'Graphic';elseD := '';end;ListBox1.Items.Add(F.Name + ', ' + D);end;end;Table1.Active := False;end;

[000533]



Содержание раздела