鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 数据库 > mssql2005 > >

ADODB.Connection (0x800A0E7A)未找到提供程序。该程序可能未正

来源:互联网 作者:佚名 时间:2013-04-13 09:47
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"
收到 DLL 成功注册的确认后,单击确定。 

查看更多精彩图片    但在后来跟其他同学交流的过程中,发现有的人尽管采用了此方法,ADODB.Connection (0x800A0E7A)的问题依然没有解决,经过一番调试,发现如果用在本机能够运行的ASP代码在对方机子上运行时,不会出现ADODB.Connection (0x800A0E7A)这个错误,很顺利,数据库连接上了,而且数据也写入了。将对方的代码拷贝到本机上运行时本机ADODB.Connection (0x800A0E7A)这个错误依然存在。仔细检查发现同学的代码存在错误。所以说,代码中有错误也会引起ADODB.Connection (0x800A0E7A)错误。

    下面附上一段测试代码,希望能对ADODB.Connection (0x800A0E7A)错误仍然存在的同仁们有所帮助。

    1.建立测试数据库

   查看更多精彩图片
    2.将下列代码拷贝到记事本,命名为test.asp,放到主目录下(注意其中的User ID和Password替换成你自己的用户名和密码)

<html>
 <head>
  <title>留言板</title>
 </head>
 <%
 '如果有接受到提交数据
 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
 %>
 <body>
  <form name="form1" action="test.asp" method="post">
   <table width="500">
    <tr>
     <td>留言人</td>
     <td><input type="text" name="UserName" maxlength="50"></td>
    </tr>
    <tr>
     <td>联系方式</td>
     <td><input type="text" name="Contact" maxlength="50"></td>
    </tr>
    <tr>
     <td>留言内容</td>
     <td><textarea name="Detail"></textarea></td>
    </tr>
    <tr>
     <td colspan="2">
      <input type="submit" name="submit1" value="提交">
      <input type="reset" name="reset1" value="重置">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>
    3.在地址栏输入127.0.0.1/test.asp,出现下面的界面

查看更多精彩图片

网友评论
<