Asp classic 是否将ASP.mdb访问更改为无DSN连接?

Asp classic 是否将ASP.mdb访问更改为无DSN连接?,asp-classic,connection-string,Asp Classic,Connection String,我有一个旧的ASP站点(很久以前由一位前员工编写),它使用DSN连接到2003 ODBC数据库。服务器已经由我们的主机更新到2008年,我们不能再使用ODBC,所以我必须减少DSN连接 不幸的是,我对ASP以及通过ASP进行数据库连接知之甚少。我想知道是否有人可以帮我更改代码,以便在没有ODBC的情况下连接到Access数据库 我认为它使用以下代码连接: 我不确定这一切是如何联系在一起的,我不是一个很好的编剧 任何(沉默的)帮助都将不胜感激 谢谢 编辑:数据库位于服务器根文件夹的“priva

我有一个旧的ASP站点(很久以前由一位前员工编写),它使用DSN连接到2003 ODBC数据库。服务器已经由我们的主机更新到2008年,我们不能再使用ODBC,所以我必须减少DSN连接

不幸的是,我对ASP以及通过ASP进行数据库连接知之甚少。我想知道是否有人可以帮我更改代码,以便在没有ODBC的情况下连接到Access数据库

我认为它使用以下代码连接:


我不确定这一切是如何联系在一起的,我不是一个很好的编剧

任何(沉默的)帮助都将不胜感激

谢谢


编辑:数据库位于服务器根文件夹的“private”文件夹中。

以下是示例代码。更改数据库名称和表字段名称

set conob = Server.CreateObject("ADODB.Connection")
conob.Provider="Microsoft.Jet.OLEDB.4.0"
conob.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath("YourDatabaseName.mdb")
Set rsuni = Server.CreateObject("ADODB.Recordset")
sqlStr="select * from Student_Entry"

rsuni.open sqlStr,conob

您必须授予登录用户对数据库的完全访问权限。

谢谢您的帮助,尽管我不确定该代码需要放在哪里以及替换什么。如果你能再多解释一点,我会非常感激的。我不熟悉这种编码风格,所以如果您能解释一下如何为虚拟机实现它,那就太好了!:)@user1607021,主要区别在于上面的代码没有使用显式连接对象。Polin在这里的代码确实使用了一个显式的ADO连接对象,该对象是使用连接字符串打开的。这使得您不需要DSN。在我编写的所有程序中,我总是避免使用DSN,即使是MS Access中的本地客户端应用程序。无DSNless连接提供了更大的灵活性和更少的麻烦。我已经尝试了上面的代码,但我不断收到大量错误消息“Object Require:“objRec”。“这是我的代码:


set conob=Server.CreateObject(“ADODB.Connection”)
conob.Provider=“Microsoft.Jet.OLEDB.4.0”
conob.Open“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&server.MapPath(“private/tvr.mdb”)
Set rsuni=server.CreateObject(“ADODB.Recordset”)
sqlStr=“SELECT*FROM hometext WHERE home_id=1”
objRec.Open sql,只需编写类似server.MapPath(“tvr.mdb”)的数据库名称即可。请确保用户具有访问该文件的完全权限。正确。将答案的前三行作为更改数据库文件的路径,然后更改dsn=databasename“to
conob
贯穿整个代码,例如:
objRec.Open sql,conob
,它将导致代码使用DSN较少的连接。