procedure TMainForm.GetDBTableSchema(ADataBase: String); var ads: TADODataSet; begin TableComboBox.Items.Clear; // Get table list. ads := TADODataSet.Create(Self); try MyADOConnection.DefaultDatabase := ADataBase; MyADOConnection.OpenSchema(siTables, VarArrayOf([Unassigned, Unassigned, Unassigned, 'TABLE']), EmptyParam, ads); while not ads.Eof do begin TableComboBox.Items.Add(ads.FieldByName('TABLE_NAME').AsString); ads.Next; end; if TableComboBox.Items.Count > 1 then TableComboBox.ItemIndex := 0; finally ads.Free; end; end;这样可以得到用户表,系统表的获取应该是修改 OpenSchema 的参数中的某一个。可以找帮助看看。
try with query do begin close; sql.Clear; sql.Add('sp_tables'); execsql; end; except showmessage('Êý¾Ý¿âÁ¬½Óʧ°Ü!'); exit; end; TableList.Items.Add(query.Fieldbyname('table_name').AsString);
FROM sysobjects
WHERE (type = 'U')
adocoonnection有一个方法,好像是
.tablename
你看一下就知道了,肯定行的
var
ads: TADODataSet;
begin
TableComboBox.Items.Clear;
// Get table list.
ads := TADODataSet.Create(Self);
try
MyADOConnection.DefaultDatabase := ADataBase;
MyADOConnection.OpenSchema(siTables,
VarArrayOf([Unassigned, Unassigned, Unassigned, 'TABLE']),
EmptyParam, ads);
while not ads.Eof do
begin
TableComboBox.Items.Add(ads.FieldByName('TABLE_NAME').AsString);
ads.Next;
end;
if TableComboBox.Items.Count > 1 then TableComboBox.ItemIndex := 0;
finally
ads.Free;
end;
end;这样可以得到用户表,系统表的获取应该是修改 OpenSchema 的参数中的某一个。可以找帮助看看。
with query do
begin
close;
sql.Clear;
sql.Add('sp_tables');
execsql;
end;
except
showmessage('Êý¾Ý¿âÁ¬½Óʧ°Ü!');
exit;
end;
TableList.Items.Add(query.Fieldbyname('table_name').AsString);