我想用DELPHI查询ASSECC库里的表的信息:字段名称,数据类型,说明等.可是字段说明我不知道怎么查询,请各位高手教下
这是我写的代码:
procedure TForm1.Button1Click(Sender: TObject);
beginlistbox1.Items.Clear;
adoconnection1.Connected:=false;
adoconnection1.Connected:=true;
adodataset1.Active:=false;
adoconnection1.OpenSchema(siColumns,emptyparam,emptyparam,adodataset1);
adodataset1.Active:=true;
while not adodataset1.Eof do
begin
listbox1.Items.add(adodataset1.FieldByName('table_name').AsString+' '+
adodataset1.fieldbyname('COLUMN_NAME').AsString+ ' '+
adodataset1.fieldbyname('DATA_TYPE').AsString) ; adodataset1.Next;
end;
end;
这是我写的代码:
procedure TForm1.Button1Click(Sender: TObject);
beginlistbox1.Items.Clear;
adoconnection1.Connected:=false;
adoconnection1.Connected:=true;
adodataset1.Active:=false;
adoconnection1.OpenSchema(siColumns,emptyparam,emptyparam,adodataset1);
adodataset1.Active:=true;
while not adodataset1.Eof do
begin
listbox1.Items.add(adodataset1.FieldByName('table_name').AsString+' '+
adodataset1.fieldbyname('COLUMN_NAME').AsString+ ' '+
adodataset1.fieldbyname('DATA_TYPE').AsString) ; adodataset1.Next;
end;
end;
type
TFieldDef = record
Name: string;
Types,
Size: Longint;
Description: string;
end; TFieldDefs = array of TFieldDef;procedure GetFieldDefs(const DBName, TableName: string; out FieldDefs: TFieldDefs);
var
DBEngine, DB: OleVariant;
I: Longint;
begin
try
DBEngine := CreateOleObject('DAO.DBEngine.36');
DB := DBEngine.OpenDatabase(DBName);
SetLength(FieldDefs, Longint(DB.TableDefs[TableName].Fields.Count));
for I := Low(FieldDefs) to High(FieldDefs) do
begin
FieldDefs[I].Name := DB.TableDefs[TableName].Fields[I].Name;
FieldDefs[I].Types := DB.TableDefs[TableName].Fields[I].Type;
FieldDefs[I].Size := DB.TableDefs[TableName].Fields[I].Size;
try
FieldDefs[I].Description := DB.TableDefs[TableName].Fields[I].Properties['Description'].Value;
except
FieldDefs[I].Description := '';
end;
end;
finally
DB := Unassigned;
DBEngine := Unassigned;
end;
end;