線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1516
推到 Plurk!
推到 Facebook!

Adoquery調用Access資料庫出錯'Access violation at address.

答題得分者是:ha0009
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-06 15:32:51 IP:218.18.xxx.xxx 未訂閱
我在程式中通過Adoquery調用Access資料庫出錯 "Project Project.erxe raised exception class EAccessViolation with message 'Access violation at address 1B04106A in moduile 'MSJET40.DLL'.Read of address 5700578F'.Process stopped.Use Step or Run to continue. [OK][Help] 按OK可以繼續運行,不知錯在哪裡呢? :)我是新手,見諒! 一顆小菜
------
交流.學習
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-06 15:58:27 IP:61.155.xxx.xxx 未訂閱
好像是您的驱动有问题或者是连接方式不对 连接方式参考如下: adoconnection1.Close ; ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=abc.mdb;user id=admin;Persist Security Info=False'; adoconnection1.Connected:=true; ADOQuery1.Connection :=adoconnection1;
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-06 16:24:54 IP:218.18.xxx.xxx 未訂閱
引言: 好像是您的驱动有问题或者是连接方式不对 连接方式参考如下: adoconnection1.Close ; ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=abc.mdb;user id=admin;Persist Security Info=False'; adoconnection1.Connected:=true; ADOQuery1.Connection :=adoconnection1;
我用的是AdoQuery,原來的代碼 adoquery3.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' ExtractFilePath( Application.ExeName ) 'KCD_Database.mdb' ';Persist Security Info=False'; adoquery3.active:=true; adoquery3.close; adoquery3.SQL.Text :='select DISTINCT JF_DW from kcd_JF '; adoquery3.Open ; datasource3.dataset:=adoquery3; 我還是試試你上面的那種方法吧! 太感謝你啦! 一顆小菜
------
交流.學習
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-06 16:34:04 IP:218.18.xxx.xxx 未訂閱
程序運行到如下代碼就出錯,跳出以上對話框。 pa:=ExtractFilePath( Application.ExeName ) 'KCD_Database.mdb' ; adoquery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' pa ';Persist Security Info=False'; adoquery2.active:=true; adoquery2.close; adoquery2.SQL.Clear; adoquery2.SQL.Add('select sum(XM_JJC) as jjc,sum(XM_HXY) as hsy,sum(XM_XGF) as xgf,sum(XM_KRF) as krf,SUM(XM_PGF) as pgf,sum(XM_NNF) as nnf,sum(XM_TSF) as tsf,sum(XM_RCF) as rcf,sum(XM_XSF) as xsf,SUM(XM_JDF) as jdf,'); adoquery2.SQL.add('sum(xm_qt1) As qt1,sum(xm_qt2) as qt2,sum(XS_HJ) as hj'); adoquery2.SQL.add('from kcd_xs'); adoquery2.SQL.Add('where XS_RQ Between #' formatdatetime('yyyy/mm/dd',datetimepicker1.date) '# and #' formatdatetime('yyyy/mm/dd',datetimepicker2.date) '#');// 'group by xs_rq'); adoquery2.Open ; datasource2.dataset:=adoquery2; 一顆小菜
------
交流.學習
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-06 16:59:51 IP:61.30.xxx.xxx 未訂閱
你好: 幾點建議給你參考 < class="code"> 1. TADOQuery ConnectionString 使用預設的編輯器設定比較不會出錯。 (AdoQuery1 屬性編輯視窗的 ConnectionString 編輯器點擊兩次會出現) 2. 加一個語法除錯的功能方便檢視 SQL 是否有誤。 try AdoQuery1.open; except memo1.Lines.Assign (ADOQuery1.SQL); end; 3. AdoQuery1.open 與 AdoQuery1.Active := true 相同,擇其一既可。 4. AdoQuery1.close 與 AdoQuery1.Active := false 相同,擇其一既可。
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-06 17:34:01 IP:61.155.xxx.xxx 未訂閱
tomc 兄: 我试验过的没有问题的,将2中连接方式公布如下: 方法一 procedure TForm1.Button1Click(Sender: TObject); begin adoquery1:=tadoquery.Create(nil); ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=' ExtractFileDir(application.Exename) '\db1.mdb;user id=admin;Persist Security Info=False'; adoconnection1.LoginPrompt :=false; adoconnection1.Connected:=true; ADOQuery1.Connection :=adoconnection1; DataSource1.DataSet :=adoquery1; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from mytable'); adoquery1.Open ; end; 方法二 procedure TForm1.Button2Click(Sender: TObject); begin DataSource1.DataSet :=adoquery2; ADOQuery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=' ExtractFileDir(application.Exename) '\db1.mdb;user id=admin;Persist Security Info=False'; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select * from mytable'); ADOQuery2.Close; adoquery2.Open ; end;
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-06 17:34:34 IP:61.155.xxx.xxx 未訂閱
tomc 兄: 我试验过的没有问题的,将2中连接方式公布如下: 方法一 procedure TForm1.Button1Click(Sender: TObject); begin ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=' ExtractFileDir(application.Exename) '\db1.mdb;user id=admin;Persist Security Info=False'; adoconnection1.LoginPrompt :=false; adoconnection1.Connected:=true; ADOQuery1.Connection :=adoconnection1; DataSource1.DataSet :=adoquery1; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from mytable'); adoquery1.Open ; end; 方法二 procedure TForm1.Button2Click(Sender: TObject); begin DataSource1.DataSet :=adoquery2; ADOQuery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=' ExtractFileDir(application.Exename) '\db1.mdb;user id=admin;Persist Security Info=False'; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select * from mytable'); ADOQuery2.Close; adoquery2.Open ; end;
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-06 18:04:07 IP:218.18.xxx.xxx 未訂閱
多謝sos_admin兄和ha0009兄! 幫了我很多忙,再次感謝!!:) 還望以後多多指教. 一顆小菜
------
交流.學習
系統時間:2024-05-18 23:51:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!