我通过一个文本框输入数据库名,然后用一个listbox显示其中所有的表名,然后再用一个listbox显示选中表的各个字段,然后选中某一字段,点击排序,就在dbgrid中显示出排序好的数据,但是现在我dbgrid中什么都不显示,前面的功能都能完成。
程序如下:implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
if (edit1.Text ='') then begin
showmessage('please input the DatabaseName');
edit1.Text:='DBDEMOS';
exit;
end;
begin
Query1.DatabaseName:=edit1.Text;
Query2.DatabaseName:=edit1.Text;
try
session.GetTableNames(Query1.DatabaseName,'',false,false,
lbTables.Items);
button2.Enabled:=true;
button4.Enabled:=true;
button5.Enabled:=true;
except
showmessage('cannot open the database:'+edit1.Text);
edit1.Text:='DBDEMOS';
end;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
const
str= 'select * from %s';
begin
if (lbtables.ItemIndex=-1) then begin
showmessage('please select a table');
exit;
end;
with query1 do
begin
close;
sql.Clear;
sql.Add(format(str,[lbtables.Items[lbtables.ItemIndex]]));
prepare;
open;
getfieldnames(lbfields.Items);
end;
label3.Caption:=lbtables.Items[lbtables.ItemIndex];
button3.Enabled:=true;
end;procedure TForm1.Button3Click(Sender: TObject);
const
str='select * from %s order by %s';
begin
if (lbfields.ItemIndex=-1) then begin
showmessage('please select a field');
exit;
end;
with query1 do
begin
close;
sql.Clear;
SQL.Add(format(str,[label3.Caption,lbfields.Items[lbfields.ItemIndex]]));
prepare;
open;
end;
end;
end.
程序如下:implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
if (edit1.Text ='') then begin
showmessage('please input the DatabaseName');
edit1.Text:='DBDEMOS';
exit;
end;
begin
Query1.DatabaseName:=edit1.Text;
Query2.DatabaseName:=edit1.Text;
try
session.GetTableNames(Query1.DatabaseName,'',false,false,
lbTables.Items);
button2.Enabled:=true;
button4.Enabled:=true;
button5.Enabled:=true;
except
showmessage('cannot open the database:'+edit1.Text);
edit1.Text:='DBDEMOS';
end;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
const
str= 'select * from %s';
begin
if (lbtables.ItemIndex=-1) then begin
showmessage('please select a table');
exit;
end;
with query1 do
begin
close;
sql.Clear;
sql.Add(format(str,[lbtables.Items[lbtables.ItemIndex]]));
prepare;
open;
getfieldnames(lbfields.Items);
end;
label3.Caption:=lbtables.Items[lbtables.ItemIndex];
button3.Enabled:=true;
end;procedure TForm1.Button3Click(Sender: TObject);
const
str='select * from %s order by %s';
begin
if (lbfields.ItemIndex=-1) then begin
showmessage('please select a field');
exit;
end;
with query1 do
begin
close;
sql.Clear;
SQL.Add(format(str,[label3.Caption,lbfields.Items[lbfields.ItemIndex]]));
prepare;
open;
end;
end;
end.
解决方案 »
- Dll子窗体如何加载皮肤!主窗体用了皮肤控件!
- 有关DBGIRD排序的问题!
- 请教:学习 function Lists():_Recordset;怎么使用?
- 为什么不能实现?
- 我想问一下我在 Delphi 7.0 下面怎么安装 QuickRep 控件? 哪里有下载的 QuickRep for Delphi 7.0?
- 找了半天,哪位老兄有delphi 7的开发文档interweb方面的
- ### 急急急,如何取得数据库中的所有表名? 在线等待,马上给分!! ###
- 求救:用DELPHI6做WEB SERVICES,总是出现“name not unique in context”
- 以下语句什么意思?请帮助我!
- 数据插入问题
- 如何使MDIChild中的一个窗口设成激活状态???
- 关于动态数组问题的请教?
{...}
SQL.Add(format(str,[label3.Caption,lbfields.Items[lbfields.ItemIndex]]));
showMessage(format(str,[label3.Caption,lbfields.Items[lbfields.ItemIndex]]));
open;