全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1959
推到 Plurk!
推到 Facebook!

access 資料庫壓縮發生錯誤

答題得分者是:Stallion
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-11 18:19:04 IP:202.39.xxx.xxx 未訂閱
各位大大好:
我的程式有一段是針對access 資料庫壓縮,之前執行沒問題,不知為何現在執行都會有問題??
我把我的錯誤訊息 po 出來,希望有經驗的大大能幫我看看,是那些東西會影響,謝謝你們!!

Variant Adoobj = Variant::CreateObject("JRO.JetEngine");
Adoobj.OleProcedure("CompactDatabase",sProvider1.c_str(),sProvider2.c_str());
Adoobj.Clear();

錯誤訊息的發生在
template bool
TAutoDriver::IsBound() const
{
return m_Dispatch != 0;
}

http://delphi.ktop.com.tw/download.php?download=upload/46e66b984c392_ERROR.JPG
附加檔案:46e66b984c392_ERROR.JPG
編輯記錄
salo0610 重新編輯於 2007-09-11 18:21:26, 註解 無‧
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-11 19:16:57 IP:211.22.xxx.xxx 未訂閱
1.按照錯誤訊息,你的程式犯了存取違規的錯誤!請確定你的ACCESS資料庫是被你的應用程式exclusive開啟的!
2.請確定資料庫所在的位置,是否有上次開啟後但關閉時發生失敗時遺留下來同主檔名但副檔名為 .ldb 的記錄檔,如果有先將之移除!
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-12 08:14:26 IP:202.39.xxx.xxx 未訂閱
Stallion 大大謝謝你的回覆!!

我有針對是不是還有其它的東西去開啟著這個 ACCESS 資料庫,是不是還有 .lab 檔,
所以當我 debug 至
Adoobj.OleProcedure("CompactDatabase",sProvider1.c_str(),sProvider2.c_str()); 這一行前
我有去資料夾看看 lab 檔是不是還存在著,
確定 lab 檔,在我程式執行 Connection Close 後,lab 檔就不見了,
因此一直抓不出什麼問題。

===================引 用 Stallion 文 章===================
1.按照錯誤訊息,你的程式犯了存取違規的錯誤!請確定你的ACCESS資料庫是被你的應用程式exclusive開啟的!
2.請確定資料庫所在的位置,是否有上次開啟後但關閉時發生失敗時遺留下來同主檔名但副檔名為 .ldb 的記錄檔,如果有先將之移除!
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-12 09:05:44 IP:211.22.xxx.xxx 未訂閱
參考一下這篇!其中的文章與程式碼有點亂了,但是還好不太長!其狀況與解決方案希望對你有幫助。
===================引 用 salo0610 文 章===================
Stallion 大大謝謝你的回覆!!
我有針對是不是還有其它的東西去開啟著這個 ACCESS 資料庫,是不是還有 .lab 檔,
所以當我 debug 至
Adoobj.OleProcedure("CompactDatabase",sProvider1.c_str(),sProvider2.c_str()); 這一行前
我有去資料夾看看 lab 檔是不是還存在著,
確定 lab 檔,在我程式執行 Connection Close 後,lab 檔就不見了,
因此一直抓不出什麼問題。
===================引 用 Stallion 文 章===================
1.按照錯誤訊息,你的程式犯了存取違規的錯誤!請確定你的ACCESS資料庫是被你的應用程式exclusive開啟的!
2.請確定資料庫所在的位置,是否有上次開啟後但關閉時發生失敗時遺留下來同主檔名但副檔名為 .ldb 的記錄檔,如果有先將之移除!
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-12 13:57:20 IP:220.132.xxx.xxx 未訂閱
Stallion 大大謝謝你的回覆!!

我改用另一個方法壓縮 access 資料庫了,it is ok!! 沒問題了。
只是不知為什麼原本的方法會出錯,會不會跟 JRO.JetEngine 有關係~~

#include DAO_2k.h
WideString wsOldDB,wsNewDB;
TCOM_DBEngine Engine = new CoDBEngine->Create();
wsOldDB = String(GetProgramPath()) "FromFile.mdb";
wsNewDB = String(GetProgramPath()) "CompactBak1.mdb";
Engine->CompactDatabase( wsOldDB.c_bstr(),wsNewDB.c_bstr());
delete Engine;


===================引 用 Stallion 文 章===================
參考一下這篇!其中的文章與程式碼有點亂了,但是還好不太長!其狀況與解決方案希望對你有幫助。
===================引 用 salo0610 文 章===================
編輯記錄
salo0610 重新編輯於 2007-09-12 13:59:11, 註解 無‧
salo0610 重新編輯於 2007-09-12 14:00:25, 註解 無‧
salo0610 重新編輯於 2007-09-12 14:01:22, 註解 無‧
系統時間:2024-04-20 11:51:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!