2011-07-27 80 views
0

我需要使用经典的ASP与Access。不幸的是这是一个要求。我目前有一个脚本连接到Access数据库就好了。下面是摘录:经典ASP访问数据库连接故障

Set adoCon = Server.CreateObject("ADODB.Connection") 

adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb") 

Set rsGuestbook = Server.CreateObject("ADODB.Recordset") 

strSQL = "SELECT * from table1;" 

rsGuestbook.Open strSQL, adoCon 

同样,这段代码工作得很好,记录发送给浏览器。

当我将此连接到不同的剧本,我得到一个错误返回规定: 微软VBScript编译错误 '800a0415' 预计常量 常量的ConnectionString =“DRIVER = {Microsoft Access驱动程序(* .mdb)中} DBQ =” &使用Server.Mappath( “DB1.MDB”)

这里是连接片段:

Const ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb") 

感谢任何指导任何人都可以把我的方式,我知道这是一些老学校,任何人其他人记得什么时候这个东西是流血的边缘?大声笑我做...

+0

笑,但MS访问从来没有出血的边缘! – BonyT

+0

该代码没有问题 - 如何使用ConnectionString常量值? – BonyT

回答

1

不要使用您的连接字符串常量。由于Server.MapPath是不确定的(路径可能会从一个运行到下一个运行),Const正在抱怨。或者,它可能会分配一个固定的时候,我不记得肯定任何拼接抱怨......

相反,变化:

Const ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb") 

到:

Dim ConnectionString 
ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb") 
+0

谢谢RedFilter!完美解决问题! –