未发现数据源名称并且未指定默认驱动程序问题如何解决

我在.asp文件中打开aceess数据库的代码如下
SetMyConnection=Server.Createobject("ADODB.Connection")
MyConnection.open “Guestbook.mdb”
当执行到下列代码时:
MyConnection.open “Guestbook.mdb”
出现错误,提示:“未发现数据源名称并且未指定默认驱动程序”,请问如何解决?

解决办法一、
首先,在控制面板-管理工具--数据源中设置ODBC数据源,在设置ODBC数据源时,要添加“系统DSN”,不要添加“用户DSN”,因为添加“用户DSN”,只能在本机使用,当把程序移植到其它计算机时,程序就无法正常运行。当设置好ODBC数据源后,再运行程序,出现提示:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件'(未知的)'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
/exc6/Guestbook2.asp, 第 4 行
解决办法是修改C:\Inetpub\wwwroot目录下exc6文件夹的访问权限,修改方法是:
1、鼠标右键点击exc6文件夹,选择属性,选择“WEB共享”选项卡,将“不共享文件夹”改为“共享文件夹”,在别名文本框中随便输入任何一个字符串,再点击“编辑属性”按钮,在弹出的窗口中将“访问权限”下的四个选项框全部打上勾,将应用程序权限下的“执行(包括脚本)”选项选中,然后点击“确定”按钮退出。经过以上处理后,再运行程序,问题解决,而原来的程序不需要做任何修改。
解决办法二、
首先,在控制面板-管理工具--数据源中设置ODBC数据源,在设置ODBC数据源时,要添加“系统DSN”,不要添加“用户DSN”,因为添加“用户DSN”,只能在本机使用,当把程序移植到其它计算机时,程序就无法正常运行。当设置好ODBC数据源后,再运行程序,出现提示:“[Microsoft][ODBC 驱动程序管理器]驱动程序的SQLSetConnectAttr 失败”,通过在网络上经过一番查询后,有网友提示要把程序修改成下列代码:
dim connstr,MyConnection
SetMyConnection=Server.Createobject("ADODB.Connection")
'connstr="driver={Microsoftaccess driver (*.mdb)};data source=Guestbook.mdb"
connstr="driver={Microsoft.Jet.OLEDB.4.0};datasource=Guestbook.mdb"
MyConnection.open connstr
程序修改后,再运行程序,问题解决。
在上面程序中,可以把下列代码:
connstr="driver={Microsoft.Jet.OLEDB.4.0};datasource=Guestbook.mdb"
替换成:
connstr="driver={Microsoft accessdriver (*.mdb)};data source=Guestbook.mdb"
这里的Guestbook.mdb就是一开始设置ODBC数据源时,所输入的数据源名。
但奇怪的是,经过上面这样处理,问题得到解决,程序能够正常运行后,再把下列程序:
dim connstr,MyConnection
SetMyConnection=Server.Createobject("ADODB.Connection")
'connstr="driver={Microsoftaccess driver (*.mdb)};data source=Guestbook.mdb"
connstr="driver={Microsoft.Jet.OLEDB.4.0};datasource=Guestbook.mdb"
MyConnection.open connstr
改回成原来程序:
SetMyConnection=Server.Createobject("ADODB.Connection")
MyConnection.open “Guestbook.mdb”
程序也能照样正常运行,不知是什么原因?
出现提示:“[Microsoft][ODBC 驱动程序管理器]驱动程序的SQLSetConnectAttr 失败”,通常是由于在控制面板-管理工具--数据源中设置ODBC数据源时,先添加了“系统DSN”, 然后又添加了“用户DSN”,然后又把“系统DSN”删除,然后再添加“系统DSN”,总之就是由于反复添加和删除“系统DSN”和“用户DSN”后,就会出现“[Microsoft][ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr 失败”的提示。解决办法是将“用户DSN”和“系统DSN”都全部删除掉,然后重新启动计算机,再重新添加“系统DSN”,就能解决问题。 添加“系统DSN”的方法如下:
打开控制面板-管理工具--数据源窗口,选择“系统DSN”选项卡,点击“添加”,在弹出的窗口中,选择“Microsoft accessdriver (*.mdb)”,点击“完成”按钮,在弹出的窗口中,在数据源名文本框中,输入与下列代码:
MyConnection.open “Guestbook.mdb”
或下列代码:
connstr="driver={Microsoft.Jet.OLEDB.4.0};datasource=Guestbook.mdb"
MyConnection.open connstr
中,与“Guestbook.mdb”相同的名字,然后点击“选择”按钮,在弹出的窗口中,找到要使用的数据库,然后一直点击“确定”按钮,就可以添加一个数据源。
在建立数据库连接时,最好使用下列代码:
dim connstr,MyConnection
SetMyConnection=Server.Createobject("ADODB.Connection")
'connstr="driver={Microsoftaccess driver (*.mdb)};data source=Guestbook.mdb"
connstr="driver={Microsoft.Jet.OLEDB.4.0};datasource=Guestbook.mdb"
MyConnection.open connstr
用上面这个代码建立的数据库连接会更加可靠,不容易出现问题,即使将程序移植到其它计算机上运行也不容易出现什么问题,而不要使用下列代码:
SetMyConnection=Server.Createobject("ADODB.Connection")
MyConnection.open “Guestbook.mdb”
用上面这个代码建立的数据库连接容易出现问题,如果将程序移植到其它计算机上运行,就容易出现错误,会提示:“未发现数据源名称并且未指定默认驱动程序”等问题。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-24
1、很可能是权限问题,查一下iis中网站或虚拟目录的匿名账户,改成开机登录的系统管理员账号试试。
2、查一下odbc驱动程序中有没有microsoft access driver (*.mdb);
相似回答