各位大神:
在delphi不同表單中呼叫dm中的adoquery,不同的表單執行不同的SQL代碼該怎么實作呢?
我在一個表單關閉時,將adoquery.sql.clear 也沒有用,不active 也沒用。
另一個表單打開時顯示的資料還是原來的表單中adoquery 中的sql代碼結果,問問各位大神該怎么解決?
uj5u.com熱心網友回復:
{dm單元:}
with adoquery1 do
begin
close;
sql.text:='select * from table'; {不同功能,使用不同的sql陳述句}
open;
end;
uj5u.com熱心網友回復:
沒有理解,這樣子我在表單中如何呼叫呢?主要是一個表單執行完后資料不知道怎么釋放掉,然后下一個表單show 時就要出錯。uj5u.com熱心網友回復:
一個表單一個query吧, 不要共用了!!!uj5u.com熱心網友回復:
dm中可以建立兩個程序呼叫,比如: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:動態建立的表單,關閉時釋放資源。
uj5u.com熱心網友回復:
這樣總感覺程式啟動好慢啊。我原來就是一個表單一個query,后面搞成一個query,感覺速度快多了。
uj5u.com熱心網友回復:
這只是2個表單啊,我差不多有20個表單要呼叫啊,會不會太麻煩了。
uj5u.com熱心網友回復:
那要看你的表單是show還是showmodal了,建議采用showmodal,這樣一個adoquery就解決了,如果是show的話,20多個表單都在軟體啟動的時候加載不僅執行檔案大而且啟動也很慢的。
uj5u.com熱心網友回復:
看看dpr檔案, 啟動表單設成主表單一個!!所有query默認active設為false, 需要時再打開!
uj5u.com熱心網友回復:
1、定義一個公共的ADO連接單元;2、其它Form單元加入USES該單元;
3、在Form中使用DBGrid與DataSource關聯
4、使用SQL陳述句讀寫資料庫。
uj5u.com熱心網友回復:
一個表單一個adoquery,默認時表單不生成,需要時再生成。adoquery默認不打開,再需要時再打開。這樣,一個表單打開時,最多也就用2、3秒了。
uj5u.com熱心網友回復:
如果表單中有資料系結控制元件,還是一個表單一個adoquery的好,但要記住,表單關閉時一定要adoquery.close,這是個好習慣,不會慢的,如果這是用來執行命令,可以共用,寫一個公共的程序就好了uj5u.com熱心網友回復:
建立一個公用的單元檔案,在表單參考就行。記得主表單建立的時候進行初始化就行.
uses
myQuerys;
......
begin
myQuery1.close;
myQuery1.SQL.Text:=sSQLText;
myQuery1.Open;
aControl.DataSet:=myQuery1;
.....
end;
uj5u.com熱心網友回復:
要Closeuj5u.com熱心網友回復:
with dm.qry1 do beginclose;
sql.clear;
sql.add(''); //你需要的SQL
open;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87399.html
標籤:數據庫相關
