ADOConnection1.GetTableNames(ListBox1,false/true); false:不显示系统表 true:显示系统表 看看GetTableNames的原型的吧。procedure TADOConnection.GetTableNames(List: TStrings; SystemTables: Boolean); var TypeField, NameField: TField; TableType: string; DataSet: TADODataSet; begin CheckActive; DataSet := TADODataSet.Create(nil); try OpenSchema(siTables, EmptyParam, EmptyParam, DataSet); TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize } NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize } List.BeginUpdate; try List.Clear; while not DataSet.EOF do begin TableType := TypeField.AsString; if (TableType = 'TABLE') or (TableType = 'VIEW') or { do not localize } (SystemTables and (TableType = 'SYSTEM TABLE')) then { do not localize } List.Add(NameField.AsString); DataSet.Next; end; finally List.EndUpdate; end; finally DataSet.Free; end; end;
true:显示系统表
false:不显示系统表
ADOConnection1.GetTableNames(ComboBox1.Items);
如果是BDE就是:
Database1.GetTableNames(ComboBox1.Items);
false:不显示系统表
true:显示系统表
看看GetTableNames的原型的吧。procedure TADOConnection.GetTableNames(List: TStrings;
SystemTables: Boolean);
var
TypeField,
NameField: TField;
TableType: string;
DataSet: TADODataSet;
begin
CheckActive;
DataSet := TADODataSet.Create(nil);
try
OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize }
NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize }
List.BeginUpdate;
try
List.Clear;
while not DataSet.EOF do
begin
TableType := TypeField.AsString;
if (TableType = 'TABLE') or (TableType = 'VIEW') or { do not localize }
(SystemTables and (TableType = 'SYSTEM TABLE')) then { do not localize }
List.Add(NameField.AsString);
DataSet.Next;
end;
finally
List.EndUpdate;
end;
finally
DataSet.Free;
end;
end;
ding!!!