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

請教UPDATE、INSERT在ADO与ODBC中的區別

尚未結案
Black Knight
一般會員


發表:6
回覆:8
積分:2
註冊:2003-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-08 12:26:45 IP:218.94.xxx.xxx 未訂閱
我有一個access資料庫db1.mdb,用adoquery1去連接: 方式一: 在ODBC里的系統DSN里新建數据源A,并連接上db1.mdb,再用adoquery連上A adoquery1.ConnectionString='Provider=MSDASQL.1;Persist Security Info=False;Data Source=a' 方式二: 直接用adoquery1連接db1.mdb adoquery1.ConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False' 同樣的設計期的SQL語句:insert into checkuser(username,password) values('k1','k1') 用方式一的話一切OK 用方式二的話當adoquery1.ExecSQL時報“INSERT INTO的語句語法錯誤”,同樣問題也出在當使用UPDATE時,當用SELECT時兩种方式都OK 請問這是什么原因呢?
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-08 13:39:48 IP:61.155.xxx.xxx 未訂閱
这是由于2中数据库驱动程式的缘故。 //FOR ODBC adoconnection1.ConnectionString :='Provider=MSDASQL.1;Persist Security Info=False;Data Source=a;Extended Properties="DSN=a;DBQ=C:\db2.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"'; adoconnection1.Connected :=true; ADOQuery1.Close ; ADOQuery1.Connection :=adoconnection1; ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Add('insert into checkuser (username,password) values (''k1'',''k1'')'); ADOQuery1.ExecSQL;     //FOR OLEDB.4.0 {adoconnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db2.mdb;Persist Security Info=False'; adoconnection1.Connected :=true; ADOQuery1.Close ; ADOQuery1.Connection :=adoconnection1; ADOQuery1.SQL.Clear ; //全部字段INSERT操作 ADOQuery1.SQL.Add('insert into checkuser  values (21,''k1'',''k1'')'); ADOQuery1.ExecSQL;     OLEDB相关说明,请参阅其它文档    供参考!!!!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-08 13:48:04 IP:211.76.xxx.xxx 未訂閱
Hi, 弟試過兩種方式是都可以正常工作無誤的, 而且之前在使用 access 資料庫時也都沒有發生過這樣的問題. 1. Provider=MSDASQL.1;Persist Security Info=False;Data Source=myaccess 2. Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db4.mdb;Persist Security Info=False sqlcommand: insert into t1 (pid, pname) values ('d', 'testd') 也都是 ok 無誤. 找不出你說的問題. 不過還是請你檢查一下兩種連接方式所以的 mdb 檔是不是同一個 (純屬猜測)..
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-08 14:43:52 IP:61.155.xxx.xxx 未訂閱
这个问题我也碰到过,是存在这样的原因。 但是对全部字段操作是不会有错误的,如上所POST    不会是大陆的OLEDB驱动与TAIWAN的不同吧!< >< > <><><>风花雪月 >< />
------
风花雪月 e梦情缘
Black Knight
一般會員


發表:6
回覆:8
積分:2
註冊:2003-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-08 15:37:01 IP:218.94.xxx.xxx 未訂閱
真没治了,我试了很多次,只要用ODBC中转一下,就好了,如果直接连到MDB文件上,就是没法新增和更新,我要疯掉了。
Black Knight
一般會員


發表:6
回覆:8
積分:2
註冊:2003-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-08 15:46:35 IP:218.94.xxx.xxx 未訂閱
真是沒治了,試了好多次都是一個結果,只要從ODBC中轉一下就好了,如果直接連到MDB文件上,無論新增還是更新都報語法錯,wnhoo兄說只要對全部操作就沒問題,可是我試了問題如故啊,哪里能找到關于OLEDB的參考文檔?我快要瘋了!    
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-08 17:21:00 IP:61.155.xxx.xxx 未訂閱
//全部字段INSERT操作的语法 insert into 表名  values (字段值列表)    不论什么连接方法,这是可用的!!!!        风花雪月 e梦情缘
------
风花雪月 e梦情缘
系統時間:2024-05-19 7:12:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!