各位大神:
在delphi不同窗体中调用dm中的adoquery,不同的窗体执行不同的SQL代码该怎么实现呢?我在一个窗体关闭时,将adoquery.sql.clear 也没有用,不active 也没用。另一个窗体打开时显示的数据还是原来的窗体中adoquery 中的sql代码结果,问问各位大神该怎么解决?
在delphi不同窗体中调用dm中的adoquery,不同的窗体执行不同的SQL代码该怎么实现呢?我在一个窗体关闭时,将adoquery.sql.clear 也没有用,不active 也没用。另一个窗体打开时显示的数据还是原来的窗体中adoquery 中的sql代码结果,问问各位大神该怎么解决?
解决方案 »
- Pointer
- 关于idtcpserver的同时下线问题
- 菜鸟的几个问题-------------------(高手请进)
- 怎样用delphi写SQL Server 的备份数据库和还原数据库
- ■■Delphi高手请进。一定有收获■■
- 李维的<<Delphi 5.X ADO/MTS/COM+>>中的“BatchUpdate的范例”出错
- DateTimePicker组件
- 第一次用线程,问一下
- 寻找实现HTTP的控件!NMHTTP和ICS都不能实现多个Cookie
- 关于动态添加菜单项的问题
- 如何使TAdvStringGrid单元格Cell[1,1]自动进入光标闪烁状态?
- Delphi调用SQLite3.dll出错
{dm单元:}
with adoquery1 do
begin
close;
sql.text:='select * from table'; {不同功能,使用不同的sql语句}
open;
end;
public
procedure TS1;
begin
with adoquery1 do
begin
close;
sql.text:='select * from table1';
open;
end;
end;
procedure TS2;
begin
with adoquery2 do
begin
close;
sql.text:='select * from table2';
open;
end;
end; 窗体1调用TS1,窗体2调用TS2。
窗体show:直接建立的窗体随主窗体一起启动,关闭时并未释放资源。
窗体showmodal:动态建立的窗体,关闭时释放资源。
这样总感觉程序启动好慢啊。我原来就是一个窗体一个query,后面搞成一个query,感觉速度快多了。
这只是2个窗体啊,我差不多有20个窗体要调用啊,会不会太麻烦了。
那要看你的窗体是show还是showmodal了,建议采用showmodal,这样一个adoquery就解决了,如果是show的话,20多个窗体都在软件启动的时候加载不仅执行文件大而且启动也很慢的。
2、其它Form单元加入USES该单元;
3、在Form中使用DBGrid与DataSource关联
4、使用SQL语句读写数据库。
这样,一个窗体打开时,最多也就用2、3秒了。
记得主窗体建立的时候进行初始化就行.uses
myQuerys;......begin
myQuery1.close;
myQuery1.SQL.Text:=sSQLText;
myQuery1.Open;
aControl.DataSet:=myQuery1;
.....
end;
close;
sql.clear;
sql.add(''); //你需要的SQL
open;
end;