最近在給客戶做一個客戶管理系統時遇到一個問題:
使用下列這個連接字符串時情況如下
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加目修改權限。