在服务器端创建对象[vba adodb.connectionn]失败.可能控件[MSA...

微信公众号
ADODB.Connection (0x800A0E7A)未找到提供程序。该程序可能未正确***。
  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 成功注册的确认后,单击确定。&
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.}}" border=0>&&&&但在后来跟其他同学交流的过程中,发现有的人尽管采用了此方法,ADODB.Connection (0x800A0E7A)的问题依然没有解决,经过一番调试,发现如果用在本机能够运行的ASP代码在对方机子上运行时,不会出现ADODB.Connection (0x800A0E7A)这个错误,很顺利,数据库连接上了,而且数据也写入了。将对方的代码拷贝到本机上运行时本机ADODB.Connection (0x800A0E7A)这个错误依然存在。仔细检查发现同学的代码存在错误。所以说,代码中有错误也会引起ADODB.Connection (0x800A0E7A)错误。
&&& 下面附上一段测试代码,希望能对ADODB.Connection (0x800A0E7A)错误仍然存在的同仁们有所帮助。
&&& 1.建立测试数据库
&& 0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.}}" border=0>&&& 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 = S User ID = Password = Initial Catalog = T 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,出现下面的界面
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.}}" border=0>
其他类似的新闻
● ● ● ● ● ● ● ● ● ●
其他相关的新闻
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点
小伙伴都在关注的热门词
Copyright (C) 2006- Inc. All Rights Reserved
孝感风信信息技术有限公司 ● 版权所有Connection对象    属性    属性名称数据类型和用途  Attributes可读写Long类型,通过两个常数之和指定是否使用保留事务(retainningtransactions)。常数adXactCommitRetaining表示调用CommitTrans方法时启动一个新事务;常数adXactAbortRetaning表示调用RollbackTrans方法时启动一个新事务。默认值为0,表示不使用保留事务。  CommandTimeout可读写Long类型,指定中止某个相关Command对象的Execute调用之前必须等待的时间。默认值为30秒。  ConnectionString可读写String类型,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息  ConnectionTimeout可读写Long类型,指定中止一个失败的Connection.Open方法调用之前必须等待的时间,默认值为15秒。  CursorLocation可读写Long类型,确定是使用客户端(adUseClient)游标引擎,还是使用服务器端(adUseServer)游标引擎。默认值是adUseServer。  DefaultDatabase可读写String类型,如果ConnectString中未指定数据库名称,就使用这里所指定的名称,对SQLServer而言,其值通常是pubs  IsolationLevel可读写Long类型,指定和其他并发事务交互时的行为或事务。见IsolationLevel常数  ModeLong类型,指定对Connection的读写权限。见Mode常数  Provider可读写String类型,如果ConnectionString中未指定OLEDB数据或服务提供者的名称,就使用这时指定的名称。默认值是MSDASQL(MicrosoftOLEDBProviderforODBC)。  State可读写Long类型,指定连接是处于打开状态,还是处于关闭状态或中间状态。见State常数  Version只读String类型,返回ADO版本号。    注意:上面所列出的大多数可读写的属性,只有当连接处于关闭状态时才是可写的。    只有当用户为Connection对象用BeginTrans...CommitTrans...RollbackTrans方法定义了不遗余力,事务隔离程度的指定才真正有效。如果有多个数据库用户同时执行事务,那么应用程序中必须指定如何响应运行中的其他事务。    方法    方法用途  BeginTrans初始化一个事务;其后必须有CommitTrans和/或RollbackTrans相呼应  Close关闭连接  CommitTrans提交一个事务,以完成对数据源的永久改变(要求使用之前必须调用了BeginTrans方法)  Execute人SELECTSQL语句返回一个forward-onlyRecordset对象,也用来执行那些不返回Recordset语句,如INSERT、UPDATE、DELETE查询或DDL语句  Open用连接字符串来打开一个连接  OpenSchema返回一个Recordset对象以提供数据源的结构信息(metadata)  RollbackTrans取消一个事务,恢复对数据源做的临时性改变(要求使用之前必须调用了BeginTrans方法)    注:只有Execute、Open和OpenSchema三个方法才能接受变元参数。Execute的语法为:  cnnName.ExecutestrCommand,[lngRowsAffected[,lngOptions]]  strCommand的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为lngOptions参数指定合适的值(详见lngOptions参数用到的常数),以使提供者解释语句时不用再去判定其类型。可选参数lngRowsAffected将返回INSERT、UPDATE或DELETE查询执行以后所影响的数目。这些查询会返回一个关闭的Recordset对象。一个SELECT查询将返回lngRowsAffected值为0并且返回带有一行或多行内容的打开的forward-onlyRecordset。    事件    事件名称触发时机  BeginTransCompleteBeginTrans方法执行以后。  PrivateSubcnnName_BeginTransComplet(ByValTransactionLevelAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  CommitTransCompleteCommitTrans方法执行以后  PrivateSubConnection1_CommitTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  ConnectComplete成功建立到数据源的Connection之后  PrivateSubConnection1_ConnectComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  DisconnectConnection关闭之后  PrivateSubConnection1_Disconnect(adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  ExecuteComplete完成Connection.Execute或Command.Execute之时  PrivateSubConnection1_ExecuteComplete(ByValRecordsAffectedAsLong,ByValpErrorAsADODB.Error,adStatusAsADODB.mand,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)  InfoMessage一个Error对象被添加到ADODB.Connectio.Error集合之时  PrivateSubConnection1_InfoMessage(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  RollbackTransCompleteRollbackTrans方法执行之后  PrivateSubConnection1_RollbackTransComplete(ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  WillConnect即将调用Connection.Open方法之时  PrivateSubConnection1_WillConnect(ConnectionStringAsString,UserIDAsString,PasswordAsString,OptionsAsLong,adStatusAsADODB.EventStatusEnum,ByValpConnectionAsADODB.Connection)  WillExecute即将调用Connection.Execute或Command.Execute方法之时  PrivateSubConnection1_WillExecute(SourceAsString,CursorTypeAsADODB.CursorTypeEnum,LockTypeAsADODB.LockTypeEnum,OptionsAsLong,adStatusAsADODB.mand,ByValpRecordsetAsADODB.Recordset,ByValpConnectionAsADODB.Connection)    注:其中的adStatus参数所用到的常数的名称和含义详见adStatus所用的常数    常数    IsolationLevel常数    常数含义  adXactCursorStability只允许读其他事务已提交的改变(默认值)  adXactBrowse允许读其他事务未提交的改变  adXactChaos本事务不会覆盖其他位于更高隔离程度的事务所做的改变  adXactIsolated所有事务相互独立  adXactReadCommitted等同于adXactCursorStability  adXactReadUncommitted等同于adXactBrowse  adXactRepeatableRead禁止读其他事务的改变  adXactSerializable等同于adXactIsolated  adXactUnspecified不能确定提供者的事务隔离程度    Mode常数    常数含义  adModeUnknown未指定数据源的连接许可权(默认值)  adModeRead连接是只读的  adModeReadWrite连接是可读写的  adModeShareDenyNone不拒绝其他用户的读写访问(JetOLEDBProvider的默认值)  adModeShareDenyRead拒绝其他用户打开到数据源的读连接  adModeShareDenyWrite拒绝其他用户打开到数据源的写连接  adModeShareExclusive以独占方式打开数据源  adModeWrite连接是只写的    State常数    常数含义  adStateClosedConnection(或其他对象)是关闭的(默认值)  adStateConnecting正在连接数据源的状态  adStateExecutingConnection或Command对象的Execute方法已被调用  adStateFetching返回行(row)到Recordset对象  adStateOpenConnection(或其他对象)是打开的(活动的)    Execute方法中lngOption参数用到的常数    Command类型常数含义  adCmdUnknownCommand类型未定(默认值),由数据提供者去判别Command语法  adCmdFileCommand是和对象类型相应的文件名称  adCmdStoredProcCommand是存储过程名称  adCmdTableCommand是能产生内部SELECT*FROMTableName查询的表名称  adCmdTableDirectCommand是能直接从表中获取行内容的表名称  adCmdTextCommand是一条SQL语句    ADODB事件处理子过程参数adStatus所用的常数    常数含义  adStatusCancel操作被用户取消  adStatusCnatDeny操作不能拒绝其他用户对数据源的访问  adStatusErrorsOccurred操作导致错误并已送到Errors集合中  adStatusOK操作成功  adStatusUnWantedEvent操作过程中一个未预料到的事件被激活-&
阅读(...) 评论()

参考资料

 

随机推荐