ADODB.Connection (0x800A0E7A)未找到提供程序。该程序可能未正
ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的中间函式组件。 虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据库的功能,一直未能标准化,每一种数据库,都使用另一种不同且不兼容的应用程序接口(API)。为了填补这个
ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取的中间函式组件。
虽然 PHP 是建构 Web 系统强有力的工具,但是 PHP 存取数据库的功能,一直未能标准化,每一种数据库,都使用另一种不同且不兼容的应用程序接口(API)。为了填补这个缺憾,因此才有 ADODB 的出现。一旦存取数据库的接口予以标准化,就能隐藏各种数据库的差异,若欲转换至其它不同的数据库,将变得十分容易。
目前 ADODB最新版本是V4.62,支持的数据库种类非常地多,例如:MySQL, PostgreSQL, Interbase, Informix, Oracle, MS SQL 7, Foxpro, Access, ADO, Sybase, DB2 以及一般的 ODBC (其中 PostgreSQL、Informix、Sybase 的driver 是由*软件社群发展之后贡献出来的)。
使用 ADODB 最大的优点之一是:不管后端数据库如何,存取数据库的方式都是一致的,开发设计人员不必为了某一套数据库,而必须再学习另一套不同的存取方法,这大大减轻开发人员的知识负担,过去的知识往后仍可继续使用,转移数据库平台时,程序代码也不必做太大的更动。
其实 ADODB 这样的发展理念,并不是首创的,DBI 比 ADODB 出现得更早,它提供 Perl 存取数据库时,使用一致的 API 呼叫接口。相信用过 Perl + DBI 的朋友,再来用 ADODB 时,会有一种似曾相识的感觉。
笔者ASP运行环境:操作系统为Windows XP SP2,IIS的版本为默认的5.1,数据库为SQL Server 2005(MDAC版本为2.8)
出现此错误的原因是,Microsoft 数据访问组件 (MDAC) 所需的动态链接库 (DLL) 尚未注册。
ADODB.Connection (0x800A0E7A)的解决方法:单击开始,单击运行,然后键入 regsvr32 "c:\Program Files\Common Files\System\Ole DB\sqloledb.dll"
但在后来跟其他同学交流的过程中,发现有的人尽管采用了此方法,ADODB.Connection (0x800A0E7A)的问题依然没有解决,经过一番调试,发现如果用在本机能够运行的ASP代码在对方机子上运行时,不会出现ADODB.Connection (0x800A0E7A)这个错误,很顺利,数据库连接上了,而且数据也写入了。将对方的代码拷贝到本机上运行时本机ADODB.Connection (0x800A0E7A)这个错误依然存在。仔细检查发现同学的代码存在错误。所以说,代码中有错误也会引起ADODB.Connection (0x800A0E7A)错误。
下面附上一段测试代码,希望能对ADODB.Connection (0x800A0E7A)错误仍然存在的同仁们有所帮助。
1.建立测试数据库
2.将下列代码拷贝到记事本,命名为test.asp,放到主目录下(注意其中的User ID和Password替换成你自己的用户名和密码)
'如果有接受到提交数据
If Request.Form.Count>0 Then
'定义数据库连接对象和数据记录集
Dim objDB,strSQL,strConnString
set objDB=Server.CreateObject("ADODB.Connection")
'数据库连接字符串
strConnString = "Provider = Sqloledb; User ID = sa; Password = sapassword; Initial Catalog = Test; Data Source = 127.0.0.1;"
'连接数据库
objDB.open strConnString
'接收提交的各项数据
Dim UserName,Contact,Detail
UserName=Request.Form("UserName")
Contact=Request.Form("Contact")
Detail=Request.Form("Detail")
'写SQL字符串,插入数据表
strSQL="Insert Test(UserName,Contact,Detail)Values('"& UserName &"','"& Contact &"','"& Detail &"')"
'执行SQL字符串
objDB.Execute(strSQL)
set objDB=nothing
End If
%>
3.在地址栏输入127.0.0.1/test.asp,出现下面的界面
上一篇: PHP require_once()函数引入的文件找不到的解决办法
下一篇: 关于图片缓存的问题