|
主题: asp两种连接数据库的问题?
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#12005/11/3 8:37:37
大虾们,帮忙看看下面这段代码 我的第一种连接语句 <% Dim db set db = server.CreateObject("adodb.connection" db.Open "dbq="&server.MapPath("data/xnyl.mdb" &";driver={Microsoft Access driver (*.mdb)}" %> 我的第二种连接语句 <% dim conn,connstr,db Set db = Server.CreateObject("ADODB.Connection" connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/xnyl.mdb" db.Open connstr %> 显示信息UserID=1的记录: <% Dim rs,strSql strSql="select * From user where UserID=1" Set rs=db.Execute(strSql) response.Write(rs("UserName" ) %> 当我用第一种连接语句的时候,能正常用response.write输出 但是当我用第二种连接语句的时候却有错误如下: Microsoft JET Database Engine (0x80040E14) FROM 子句语法错误。 /one/index.asp, 第 22 行 请问这是什么原因呢!是不是我用的第二种OLEDB连接错了,还是怎样? 无论是大虾还是小虾,只要是会的都可以说说,不会的也帮忙顶顶,呵呵!先谢啦!
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#22005/11/3 8:41:33
<% Dim db set db = server.CreateObject("adodb.connection") db.Open "dbq="&server.MapPath("data/xnyl.mdb")&";driver={Microsoft Access driver
(*.mdb)}" %> 我的第二种连接语句 <% dim conn,connstr,db Set db = Server.CreateObject("ADODB.Connection") connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/xnyl.mdb") db.Open connstr %>
显示信息UserID=1的记录:
<% Dim rs,strSql strSql="select * From user where UserID=1" Set rs=db.Execute(strSql) response.Write(rs("UserName")) %>
当我用第一种连接语句的时候,能正常用response.write输出 但是当我用第二种连接语句的时候却有错误如下: Microsoft JET Database Engine (0x80040E14) FROM 子句语法错误。 /one/index.asp, 第 22 行
请问这是什么原因呢!是不是我用的第二种OLEDB连接错了,还是怎样? 无论是大虾还是小虾,只要是会的都可以说说,不会的也帮忙顶顶,呵呵!先谢啦!
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#32005/11/3 8:54:52
select * From [user]
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#42005/11/3 13:01:30
allinhands,你说的我已经试过,但是还是同样的问题. 错误类型: Microsoft JET Database Engine (0x80040E14) FROM 子句语法错误。 /one/index.asp, 第 22 行
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#52005/11/3 13:47:45
连接Access数据库?我这里有写好的两个函数,你参照一下,也许能找到问题的所在呀。
'打开Access数据库
Function OpenAccess(MDBFileName,PIN)
Dim StrConn
StrConn="Provider=Microsoft.Jet.OLEDB.4.0"
StrConn=StrConn & ";Persist Security Info=False"
StrConn=StrConn & ";Jet OLEDB:Database Password=" & PIN
StrConn=StrConn & ";Data Source=" & Server.MapPath(MDBFileName)
Set OpenAccess=Server.CreateObject("ADODB.Connection")
OpenAccess.Open strConn
End Function
'打开Access数据库二
Function OpenAccessB(MDBFileName,PIN)
Dim StrConn
StrConn="Driver={Microsoft Access Driver (*.mdb)}"
StrConn=StrConn & ";DBQ=" & Server.MapPath(MDBFileName)
StrConn=StrConn & ";PWD=" & PIN
Set OpenAccessB=Server.CreateObject("ADODB.Connection")
OpenAccessB.Open strConn
End Function
'关闭Access数据库
Sub CloseAccess(ConnAccess)
ConnAccess.Close
Set ConnAccess=Nothing
End Sub
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#62005/11/3 13:51:59
好像是少了Jet OLEDB: 说明一下,PIN指的是Access数据库的密码,如果没有密码,设为空就可以了。
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#72005/11/3 15:26:57
呵呵,上面的东西好像长了点吧!我想问问用OLEDB跟非OLEDB连接有什么区别啊?
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#82005/11/3 15:30:35
我发现错误的地方了,原来是数据库表的名字
"user"有问题,我将它改成"user_info" 或其他的
就可以了,可是我不知道为什么用第二种连接方法就不能用表名"user"
这应该是OLEDB跟OLEDB之间的区别是吗?
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#92005/11/3 15:39:52
再想请教diffmaker多一个业余的问题,你回复的帖子代码段是不是加在[html][/html]之间的啊?
|
liminghyx520
职务:普通成员
等级:1
金币:0.0
发贴:1
|
#102005/11/3 16:37:07
因为user是关键字,所以要加[]
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#112005/11/3 21:33:24
是加在[code][/code]之间的。 其实代码长短有关系吗?关键是好使就成了。这是两个通用的函数,整理好了,方便复用呀。打开ACCESS数据库,用一种方法就可以了。我是把加密与不加密的放在一个函数里了。
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#122005/11/4 8:53:56
好,值得收场,呵呵!谢谢啦!试下也好.我想问问到底有哪些关键字啊?
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#132005/11/4 9:23:40
关键字很多,自己养成命名习惯就可以了。我一般用组合式方法来给表及字段命名。比如我想建立一个朋友信息的表,命名叫:amigoInfo,内设字段amigoID,amigoName,amigoSex,amigoAge,amigoAddress,这样命名,自己一看就知道其用途了。使用时也不易出错。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#142005/11/4 9:26:18
可能名字比较长,需要多敲几下键盘。但出错了几率也小了,即使出错也好排查。重要的是,对程序的后期维护比较有帮助。我觉得长点还是值得的。
|