請問有關於TADOConnection連線的問題 |
答題得分者是:RaynorPao
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
請問各位大大我按下Button2時為什麼 材料資料庫.ldb(Microsoft Office Access 記錄鎖定資訊)還是存在呢?
我是用OBDC的, 請問各位大大要怎麼才能讓TADOConnection斷線呢? 請大大幫幫忙! 謝謝!謝謝! [code cpp] void __fastcall TForm1::FormCreate(TObject *Sender) {A2 = new TADOConnection(this); A2 ->LoginPrompt = false; A2 ->CursorLocation = clUseClient; A2 ->ConnectOptions = coConnectUnspecified; A2 ->Mode = cmUnknown; A2 ->IsolationLevel = ilCursorStability; A2 ->Provider = "MSDASQL.1"; A2->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=材料資料庫"; A2->Connected = true; ADOTable1->Active=true; ADOTable1->Open(); } void __fastcall TForm1::Button2Click(TObject *Sender) { A2->Connected=false; delete A2; } [/code]
------
-謝謝大大熱心的回覆!謝謝! 編輯記錄
l90425 重新編輯於 2008-09-03 20:46:18, 註解 無‧
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
沒想到既然如此簡單真不愧是版主大大呀
謝謝! 還想請問大大一個問題 TADOConnection *A2= new TADOConnection(ADOConnection1); A2->Close(); 為什麼寫成這樣時沒有結束連線呢? 只有寫成ADOConnection1->Close();才會結束連線呢! 謝謝RaynorPao版主大大熱心的回覆! 謝謝!謝謝! ===================引 用 RaynorPao 文 章=================== (1)要建立 DB 連線用 ADOConnection1->Open(); (2)要結束 DB 連線用 ADOConnection1->Close(); (3)ADOConnection1->Connected 是用來判斷目前是否有建立 DB 連線
------
-謝謝大大熱心的回覆!謝謝! |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
(1)呃...你的程式碼好像有一點奇怪喔,既然已經動態 new 一個 TADOConnection 的 Instance (A2),為什麼還會有 ADOConnection1 呢?
(2)如以下的範例程式碼,並不會有你所說的問題 [code cpp] AnsiString szAppPath=ExtractFilePath(Application->ExeName); TADOConnection *adoc=new TADOConnection(Application); adoc->ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" szAppPath "Test.mdb"; adoc->Open(); if(adoc->Connected) { TADOQuery *adoq=new TADOQuery(Application); adoq->Connection=adoc; AnsiString aCmd="select * from TestTable"; adoq->Close(); adoq->SQL->Clear(); adoq->SQL->Add(aCmd); adoq->Open(); ShowMessage(IntToStr(adoq->RecordCount)); adoq->Close(); delete adoq; } adoc->Close(); delete adoc; [/code] (3)建議你再檢查一次專案的設定,以及相關的程式碼
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
編輯記錄
RaynorPao 重新編輯於 2008-09-04 11:32:14, 註解 無‧
|
l90425
初階會員 發表:95 回覆:152 積分:49 註冊:2008-04-03 發送簡訊給我 |
嗯嗯!謝謝RaynorPao版主大大的用心回答!
所以我做了很多次的實驗,在做完實驗後,我發現了一件事就是 當 [code cpp] adoc=new TADOConnection(Application); adoc->ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=xxxxxx"; adoc->Open(); //ADOTable1->Open(); (但若加入這一行後,只有用"adoc->Close();"來關閉,還是無法解除"記錄鎖定資訊"。還必須加上ADOTable1->Close();這一行才能解除"記錄鎖定資訊"。) adoc->Close(); [/code] 及,不用adoc->Open();來連線,用ADOTable1->Open()也能直接連線,關閉時也只要ADOTable1->Close();即能解除"記錄鎖定資訊" [code cpp] ADOTable1->Open(); ADOTable1->Close(); [/code] 以上說了那麼多個人心得廢話(sorry! 若有錯還請告訴我謝謝), 最後,還是要感謝版主大大總是那麼用心的回覆! 謝謝!謝謝!
------
-謝謝大大熱心的回覆!謝謝!
編輯記錄
l90425 重新編輯於 2008-09-05 00:20:42, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |