類似**:
coinitialize(nil) ; //coinitialize was not called
qry := tadoquery.create(nil) ;
try// must use own connection
// qry.connection := form1.adoconnection1;
qry.connectionstring := connstr;
qry.cursorlocation := cluseserver;
qry.locktype := ltreadonly;
qry.cursortype := ctopenforwardonly;
qry.sql.text := sqlstring;
qry.open;
while not qry.eof and not terminated do
begin
listbox.items.insert(0, format('%s - %d', [qry.fields[0].asstring,qry.fields[1].asinteger])) ;
//canvas does not allow drawing if not called through synchronize
synchronize(refreshcount) ;
qry.next;
end;
finally
qry.free;
end;
couninitialize() ;
在建立多執行緒delphi ado資料庫應用程式時你需要知道如何解決3個陷阱:
1 使用該dbgo任何物件前必須手動呼叫coinitialize,最後呼叫couninitialize。不呼叫coinitialize將導致「coinitialize沒被呼叫」的錯誤。coinitialize方法初始化當前執行緒上的com庫。 ado是com。
2 您不能使用主線程(應用程式)的tadoconnection物件。每個執行緒需要建立自己的資料庫連線。如果使用tadoquery物件直接連線資料庫的話,tadoconnection物件就可以省了,省了許多事。
3 您必須使用 synchronize程式與序主線程「交談」和 訪問主表單上的任何控制項。
簡單的多執行緒查詢
下面是顯用來顯示方法執行的時間,但是暫時沒有顯示出方法名稱,之前在做多資料來源的時候,在用到aop根據註解來切換資料來源的方法中,有根據joinpoint引數來得到乙個方法名稱,之後可以考慮新增一下。public class methodtimer public static void end el...
多執行緒批量網域名稱資訊查詢
寫了乙個多執行緒的批量網域名稱資訊查詢,data.txt儲存需要的查詢網域名稱。查詢結束後,生成的結果會分別儲存在以網域名稱為的檔名的檔案中 usr bin python coding utf 8 by zsdlove import whois import json import threadpo...
多執行緒 多執行緒原理
我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...