asp连接access 2007与 access 2003数据库的conn代码
随着微软发布ms access 2007,原来使用asp访问access2003的连接语句:
例如连接一个当前目录下的#site.mdb文件可用
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("#site.mdb")’此处路径页可使用绝对路径,例如
‘Data Source=E:\test.accdb
也需要改成:
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("#site.accdb")’此处路径页可使用绝对路径,例如
‘Data Source=E:\test.accdb
可以看出,Access2007在数据格式上有很大变化,它的Provider(提供商)也有改动.驱动号也不同! 注意access 2007和以前的access 2003连接字符串有三个明显不同的地方:
Provider部分由Microsoft.Jet.OLEDB变成了Microsoft.ACE.OLEDB
以前的jet4是连接不上的;
驱动版本号由4.0变成了12.0
数据库的扩展名变为accdb而非mdb
同时,如果由ACCESS2007转到ACCESS2003,则需要注意检查系统中是否安装了microsoft.jet.oledb数据源驱动,如果没有,则按照如下方法进行安装:
先安装MDAC 2.7,如果没有安装的话是不可能运行ACCESS的。在安装目录WCU文件夹下面应该有MDAC的安装包,还有就是你的驱动申明应该使用 “microsoft.jet.oledb.4.0”;MDAC 2.7做成打包文件以后选择jet引擎,安装以后就行了。
同样的道理,如果由ACCESS2003转到ACCESS2007,则也要检查系统中是否安装了microsoft.ace.oledb驱动。
驱动是连接应用程序与底层数据源的桥梁,里面封装了各种增删改查以及备份或还原的函数;如果没有驱动,asp或asp.net甚至java将无法直接访问access底层数据源。
在asp访问access时,需要将WINDOWS/TEMP目录的权限设置为everyone,否则asp将无法访问access,访问时会出现80045……之类的错误,微软竟然将数据库内容放到根目录下的临时文件夹中,难怪漏洞很多!