MDB資料連結另一MDB資料表問題 |
答題得分者是:aftcast
|
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
各位前輩: 我欲撰寫一個簡易在MDB中產生資料表連結的函數Link_MDB,連結是可以連結成功,不過卻發現會產生一個意外狀況
unit UNT_MS_Access_MDB; interface function Link_MDB(Source_MDB_Name: string; Target_MDB_Name: string; TableName: string; DB_PASSWORD: string = ''): boolean; implementation
begin Cnt_S := TADOConnection.Create(nil); // 利用 ADOX 組物件來動態產生 Access Table // 檢查檔案是否存在 if IsMDBTable = True then tblNew := nil; tblNew.Properties['Jet OLEDB:Create Link'].Value := True; tblNew.ParentCatalog := nil; Cnt_S.Connected := false;
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」 程式寫的越久,卻發現自己越來越不會寫程式! |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
g9221712 你好,你程式愈寫愈進階呢! 你的這個問題我想是極少人知道的。不過…剛好我之前自己也有遇到過,花了不少的時間自己想辦法測式和追踪,終於有了解答…雖然只能少少的幾行,但會搞死人,這就是所謂的江湖一點訣吧! 不過,我不敢完全保証你用了也會有效,因為是類似並非完全相同。還有,我是bcb的程式,而bcb與delphi在com元件的實作上是相去最多的地方,所以還要靠一下下你自己把我的概念換成delphi,因為我沒裝delphi的環境,也沒法幫你測了。若有測出來,或是沒有,都請post上來了解一下吧!
===================引 用 文 章=================== 各位前輩: 我欲撰寫一個簡易在MDB中產生資料表連結的函數Link_MDB,連結是可以連結成功,不過卻發現會產生一個意外狀況 我發現你說 「// 須先 import type library -> Microsoft Jet and Replication Objects 2.5 Library (Version 2.5)」這好像有錯,應該是「Microsoft ADO Ext. 2.x for DDL and Security」才對,那裡面才有Table, Catalog等元件。 tblNew.ParentCatalog := nil; //這裡要加入幾行程式,我要放入的是對應我bcb的程式碼,請你自己改成delphi的 //就我所知,delphi裡應該用的是OleVariant,簡單講,原理就是使用cat->get_ActiveConnection();傳回一個Variant物件,然後強硬使用它Close的方法!如果成功了,你下面的一堆nil,false,close,destroy應該都可以省了,但_Release 要留著。你也許會想…可是我下面有用 Cnt_S.Connected := false; Cnt_S.Close;但意義有些不一樣。先試試看吧!
Cnt_S.Connected := false;
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
g9221712
高階會員 發表:145 回覆:344 積分:162 註冊:2006-07-06 發送簡訊給我 |
aftcast前輩: 感謝您的回應,其實我也沒多大長進,只是找了網路上找程式碼,想到達成自己的目標而已, 我試了您所說得方法,不過他會出現Microsoft Jet 資料庫引擎無法找對輸入的查詢或資料表 vv := catdb.Get_ActiveConnection(); 我加上的語法如上,不過錯誤在哪其實我也不知道,JET資料庫底層其實我也沒有了解很透徹, 我想了一個很不爭氣的作法,因為ldb檔案其實會自己產生的,我想若我無法解決的話,直接下達 不過有aftcast前輩的回應,雖然有時無力只想在Ktop找到不求甚解的但解決程式碼,
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」 程式寫的越久,卻發現自己越來越不會寫程式! |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
不要灰心。你試著想說用刪的…我也曾想過,但行不通,因為在同一個程序裡你就是無法刪它。除非你離開程式後,再跑另外的程式來砍! //又另外一種
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |