错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
/conn.asp, 第 4 行
我就复你的去,调试也是这样的错误.可以告诉我是什么原因吗?我装了ODBC,什么都装了.
应该是没有驱动程序
转一个 (虽然我没看内容 但也差不多)
如何在非web程序或asp程序中使用mysql数据库?两个解决方案:
1、使用mysql提供的api函数库
很多有名的mysql客户端工具就是这样实现的,大名鼎鼎的winmysql工具就是这样的。这在大部分的开发工具中都可以实现。比如vc,bcb,delphi,vb等,只要能调用第三方的api就能实现。但对程序员的要求很高,而且要熟悉一套mysql的api函数集,这不是对每个人都很轻松的事。而且这种方法不能用于asp等程序,因为它不支持com对象。
2、使用myodbc驱动程序
从www.mysql.com下载myodbc驱动程序。
第一种选择是下载体积很大的完全安装包,虽然这样容易些,但对我们有用的只有myodbc.dll。
第二种是直接下载myodbc.dll文件,只有几百K,但不太容易使用,本人经过很久摸索才找到使用它的方法。首先将包解开,将myodbc.dll 文件放到windowssystem 或 winntsystem32目录下,这取决于你的系统是win9x还是winnt(win2k)。
然后打开纯文本编辑器,如editplus,notpad,将下面一段话保存为一文件,扩展名为.reg。
(如果你用的是win2k请将第一行换成:windows registry editor version 5.00)
windows registry editor version 4.00
[hkey_local_machinesoftwareodbcodbcinst.inimyodbc driver]
"usagecount"=dword:00000002
"driver"="c:\winnt\system32\myodbc.dll"
"setup"="c:\winnt\system32\myodbc.dll"
"sqllevel"="1"
"fileusage"="0"
"driverodbcver"="02.50"
"connectfunctions"="yyy"
"apilevel"="1"
"cptimeout"="120"
[hkey_local_machinesoftwareodbcodbcinst.iniodbc drivers]
"myodbc driver"="installed"
备注:WINDOWS-XP 系统可以直接采用以下两个驱动安装即可。
1.mysql-connector-odbc-3.51.12-win32_Setup_exe
2.mysql-connector-odbc-3.51.12-win32_Setup_msi
WINDOWS2000 系统则可以用 1.mysql-connector-odbc-3.51.12-win32_Setup_exe 来安装。
myodbc.dll 文件的下载地址:myodbc.dll
3、采用ODBC接口访问MySQL指南
MySQL的ODBC接口实现是通过安装MyODBC驱动,这个驱动程序是跨平台的。如果在Linux等unix体系操作系统下使用,需要先安装iodbc这些第三方ODBC标准支援平台。
简单的ASP示例代码:
<%
dim sql,mysql
set sql = server.createobject("adodb.connection")
mysql="driver={mysql odbc 3.51 driver};database=库;server=主机;uid=用户;password
=密码;" ’option = 设置
sql.open mysql
%>
上边这段代码是采用MyODBC开发版3.51连接的示例,使用开发版是因为一些新的特性和稳定性2.x正式版所不具备的。前几天看了篇微软安全专家所撰写的如何编写安全程序的教程。上边提到如果按照上边示例的方法一旦ASP文件的代码被骇客看到,那么数据库可能不保,然后引发一连串的问题,甚至被夺得管理权限。文章中顺便提到了解决方法,是通过编写com组件,然后由ASP调用组件的方法连接数据库。这么做的好处是提高了安全性,但是问题是有能力这么做的人毕竟是少数。那么我的折衷方案是定义数据源。将库、用户、密码以及设置这些连接信息统统在数据源中定义,从很大程度简单化了实现的难度,而且也起到增强安全性的作用。当然,为了保证数据源可以在实际运作环境中被访问到,一定要定义为“系统数据源”,开发时定义为“用户数据源”或者“系统数据源”我倒觉得无伤大雅。
使用数据源的ASP示例代码
<%
dim sql
set sql = server.createobject("adodb.connection")
sql.open "dns=MySQL数据源名称"
%>