参考,动态显示ListBoxTables 表中的字段 ListBoxTables 包含表A,B,C ListBoxColumns.Items.Clear; for i := 0 to (ListBoxTable.Items.Count - 1) do begin if ListBoxTable.Selected[i] then begin with frmdm.qryOpen do begin close; sql.Clear; str := format('select syscolumns.name from syscolumns,sysobjects where syscolumns.id = sysobjects.id and sysobjects.name = ''%s'' order by colid ',[ListBoxTable.Items.Strings[i]]); sql.Add(str); prepared; open; first; while not eof do begin ListBoxColumns.Items.Add(frmdm.qryOpen.fieldbyname('Name').AsString); next; end; end; end; end;
这是代码,看着写一个就行了 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB;type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Button1: TButton; procedure Button1Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); var ls:TStrings; begin ADOConnection1.GetTableNames(ListBox1.Items,False); end;procedure TForm1.ListBox1Click(Sender: TObject); begin ListBox2.Clear; ADOQuery1.Close; ADOQuery1.SQL.Text:='select name from syscolumns where id in '+ '(select id from sysobjects where name='+ QuotedStr(ListBox1.Items[ListBox1.ItemIndex])+')'; ADOQuery1.Open; while not ADOQuery1.Eof do begin ListBox2.Items.Add(ADOQuery1.FieldByName('name').AsString); ADOQuery1.Next; end; end;end.
ListBoxTables 包含表A,B,C
ListBoxColumns.Items.Clear;
for i := 0 to (ListBoxTable.Items.Count - 1) do
begin
if ListBoxTable.Selected[i] then
begin
with frmdm.qryOpen do
begin
close;
sql.Clear;
str := format('select syscolumns.name from syscolumns,sysobjects where syscolumns.id = sysobjects.id and sysobjects.name = ''%s'' order by colid ',[ListBoxTable.Items.Strings[i]]);
sql.Add(str);
prepared;
open;
first;
while not eof do
begin
ListBoxColumns.Items.Add(frmdm.qryOpen.fieldbyname('Name').AsString);
next;
end;
end;
end;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var ls:TStrings;
begin
ADOConnection1.GetTableNames(ListBox1.Items,False);
end;procedure TForm1.ListBox1Click(Sender: TObject);
begin
ListBox2.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select name from syscolumns where id in '+
'(select id from sysobjects where name='+
QuotedStr(ListBox1.Items[ListBox1.ItemIndex])+')';
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
ListBox2.Items.Add(ADOQuery1.FieldByName('name').AsString);
ADOQuery1.Next;
end;
end;end.