資料庫連線,有時會出錯在conn.open connstr這地方的問題,及聯接查詢呼叫rs(user.id)的問題最近在給客戶做一個客戶管理系統時遇到一個問題:
使用下列這個連接字串時情況如下
connstr=DBQ=+server.mappath(db/#kehumsg.mdb)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};
set conn=server.createobject(ADODB.CONNECTION)
conn.open connstr
有一個聯接查詢,
中用到要呼叫第二個表的id,
以正常來說可以這麼調rs(b.id)但卻顯示在對應所需名稱或序數的集合中,找不到項目。
在csdn上貼終找不出答案,
最後用rs(id)解決問題,心想,這麼調用應該是調第一個表的id吧,
但它卻調的是第二個表的,不過我要的就是第二個的,
研究了一下,原來真是這樣,它調的是後一個表的id. 感覺還不錯,自己能研究出些東西了,呵呵~~
但快下班時客戶說有問題,什麼都進不了了,
出錯的地方在上面那種聯結的conn.open connstr處,
這裡怎麼會出錯呢,在網上找了一下說有這種情況,於是按他說的改了一下改成
dbpath=server.mappath(db/#kehumsg.mdb)
connstr= provider=microsoft.jet.oledb.4.0;data source= & dbpath
set conn=server.createobject(adodb.connection)
conn.open connstr
沒多想,大概試了一下可以,
但好景不長,今天客戶又說出問題了.
拿到一看,我服了,又是聯合查詢那出錯了,
怎麼會這樣呢,和經理研究了一下終於發現問題所在:
這時呼叫第二個表的id裡可以呼叫rs(b.id)也必須這麼呼叫,
不能像第一個聯接字元那樣了,
我覺得應該是資料庫引擎的問題,不知大家怎麼認為,
在此向大家推薦第二種聯接,
////////////////////////////////////////////////// ////////// ////////////////////////////////////////////////// ///////////
又發現一個問題,解決方法:windows/temp的權限users加目修改權限。