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

好奇怪的 msjet40.dll 錯誤啊。。。。太奇怪了。。。

答題得分者是:P.D.
gxxc2008
一般會員


發表:4
回覆:4
積分:1
註冊:2008-06-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-27 17:13:25 IP:116.204.xxx.xxx 訂閱
with datamodule1.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('SELECT sum(aaa) AS a1 ');
sql.Add(' FROM table1 ');

這個語句如果這樣寫,在delphi7.0環境,在datamodule1中的ADOConnection1連接資料庫的方式用odbc連接沒問題。通過。
可是如果連接方式用Microsoft.Jet.OLEDB.4.0,則在運行該語句時提示'Access Violntion at address 1B02F736 in module msjet40.dll '的錯誤。通不過。
可是黨我把語句寫為
sql.Add('SELECT sum(a1) AS a1 FROM table1 ')又通过了...

真是奇怪極了。到底怎麽囘事?似乎遇到sum就會報錯?没道理啊,怎麽辦?我肯定要用方式連接資料庫,且中的内容太多,超過了255,也就是說一定要分幾行寫。。。

不勝指教。。。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-28 07:47:31 IP:61.67.xxx.xxx 未訂閱
這的確很奇怪, 但又沒有你手上的資源並不容易測到結果, 如果只是按你說的方法, 倒是可以這樣做

var SQLstring: string;
begin
....
SQLstring:= 'SELECT .... ';
SQLstring:= SQLstring ' from .... ';
Table1.SQL.Text:= SQLstring;
end;
gxxc2008
一般會員


發表:4
回覆:4
積分:1
註冊:2008-06-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-30 10:19:17 IP:116.204.xxx.xxx 訂閱
多謝指教。
用這個方法確實在調試運行時通過了。
不過還是感覺很奇怪。爲什麽用odbc連接就沒問題呢?
用以前的方法如果不在調試運行狀態,也就是直接運行,那也是都可以通過的。就是在調試運行狀態運行時就會出現“Access Violntion at address 1B02F736 in module msjet40.dll ”這個錯誤。
不知道在哪裏可以傳遞附件,或發送附件的郵箱,我可以發簡單的測試代碼,請幫忙看看有沒有這種情況。
編輯記錄
gxxc2008 重新編輯於 2008-06-30 10:30:35, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-06-30 10:51:55 IP:61.221.xxx.xxx 未訂閱
底下有會員求助程式可以用, 不過你可能要傳送完整的code才有辦法有人幫你解決看看
系統時間:2024-11-23 6:24:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!