如何获取某个表的各列的名称和字段类型?
最好能够提供源代码
谢谢

解决方案 »

  1.   

    table.fieldstable.fieldbyname('').datatype
      

  2.   

    table.fieldbyname('columnname').fieldname  //字段名称
    table.fieldbyname('columnname').classname  //字段类型
      

  3.   

    我就是想用OpenSchema 的方式获得某个表的信息,但是调用出错了
    var
       Filter: OLEVariant;
    begin
       Filter := VarArrayCreate( [0, 2], varVariant);
       Filter[2] := 'Leader';
       DataModule1.LeaderConnection.OpenSchema(siColumns, Filter, EmptyParam, ADODataSet1);
    end
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables;type
      TForm1 = class(TForm)
        Table1: TTable;
        DataSource1: TDataSource;
        ListBox1: TListBox;
        procedure FormCreate(Sender: TObject);
        procedure ListBox1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      table1.GetFieldNames(listbox1.Items);
    end;procedure TForm1.ListBox1Click(Sender: TObject);
    begin
       if table1.Active=false then table1.Open;
      if  table1.FindField(listbox1.Items.Strings[listbox1.itemindex]).DataType=ftString then
        showmessage('整形');
    end;end.类型这么多 TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);