新聞中心
通過專家和一些技術(shù)人員的見解,如果開發(fā)基于ADO多線程操作,最好在每個(gè)線程中放置一個(gè)連接,而數(shù)據(jù)集和數(shù)據(jù)連接都使用動(dòng)態(tài)生成,當(dāng)然你必須要注意必須要保證線程能過正常的釋放

十年的臨邑網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臨邑建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“臨邑網(wǎng)站設(shè)計(jì)”,“臨邑網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
所以 ,后臺(tái)數(shù)據(jù)庫暫時(shí)使用access小型數(shù)據(jù)庫進(jìn)行代替,到后期可以改為SQLSERVER數(shù)據(jù)庫,,我在后臺(tái)數(shù)據(jù)庫中使用了兩個(gè)表,使用WORKMARK字段將其相關(guān)聯(lián),如果ADO多線程在第一個(gè)表中查找到信息以后馬上會(huì)進(jìn)入第二個(gè)表中進(jìn)行查找,如果第一個(gè)表中的信息符合,就返回個(gè)客戶第二個(gè)表中的信息,因?yàn)樽酥鳈C(jī)有200多臺(tái),為了防止幾臺(tái)主機(jī)同時(shí)進(jìn)行驗(yàn)證信息,引起沖突,我在服務(wù)器端建立多線程,
利用線程進(jìn)行后臺(tái)的查詢,以及查找結(jié)果的回傳,編寫成功后進(jìn)行測試,發(fā)現(xiàn)當(dāng)一個(gè)主機(jī)連接后可以測試成功,但是,當(dāng)?shù)诙€(gè)或者以后的線程產(chǎn)生時(shí),數(shù)據(jù)集在第一個(gè)表中可以查到正確的信息,但是進(jìn)入第二個(gè)表中時(shí)。
會(huì)發(fā)現(xiàn)按照正確的查找條件進(jìn)行查找時(shí),查到的信息都為NIL,而且經(jīng)過跟蹤,ADO多線程發(fā)現(xiàn),其實(shí)ADO已經(jīng)找到了正確的信息,而且已經(jīng)發(fā)送成功了,ADO多線程但是卻無法接收到,當(dāng)時(shí)我在論壇中發(fā)表了一個(gè)帖子尋求幫助。
有些朋友說可能ACCESS數(shù)據(jù)庫不提供多線程訪問,但是我聽說很多的論壇中好像都使用了ACCESS進(jìn)行后臺(tái)線程的查找的。翻看MSDN中關(guān)于COM的說明:發(fā)現(xiàn)我的線程中竟然缺少最重要的兩個(gè)函數(shù)過程
CoInitialize( nil );凡是訪問com對(duì)象都應(yīng)該使用。ADO多線程線程的關(guān)閉時(shí)應(yīng)該使用CoUnInitialize;否則ADO肯定出錯(cuò),我相信肯定有不少的朋友經(jīng)歷過這種問題的:
- constructor QueryThread.create(ComputerInfor, IPaddressinfo: string;nmmsg,NMretureMSG:TNMMSG);
- begin
- CoInitialize( nil );//使用com對(duì)象必須要初始化
- inherited create(false);
- FreeOnTerminate:=true;
- FComputerInfor:=ComputerInfor;
- FIPaddressinfo:=IPaddressinfo;
- IPlist:=Tstringlist.create;//創(chuàng)造ip列表
- FAdoQuery:=TAdoQuery.Create(nil); //動(dòng)態(tài)生成表一
- FAdoQUserInfor:=TadoQuery.Create(nil);//動(dòng)態(tài)生成表2
- Fadoconnection:=Tadoconnection.Create(nil);//動(dòng)態(tài)生成的連接
- Fadoconnection.LoginPrompt :=false;
- Fadoconnection.KeepConnection :=true;
- Fadoquery.Connection:=Fadoconnection;
- FAdoQUserInfor.Connection :=Fadoconnection;
- Fadoconnection.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=PersonInformation.mdb;Mode=Read;Persist Security Info=False';
網(wǎng)頁題目:講述ADO多線程如何更好的進(jìn)行操作
網(wǎng)頁路徑:http://www.5511xx.com/article/dpeggce.html


咨詢
建站咨詢
