ADO 数据库连接

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

这些天一直在学习ADO 数据库连接,感觉比较复杂,所以一边学习,一边使用,一边做了一些笔记,下面的一些东西就是我总结的一些关于ADO数据库连接方面的东西,因为是笔记,所以不一定很有序,贴出来的意思一方面是可以给大家一个参考,一边也有希望大家一起来完善的意思,其中错误和不足之处当然希望大家可以及时地通知我,在贴上来的时候,我有一个想法,因为我在使用的过程中,总是会遇上一些莫明其妙的错误,所以我想大家有可能也会遇上,于是,我给出了一个错误总结,当然这里就需要大家一起来完善了,如果大家有什么心得和见解,希望在评论中留言,我会及时地接受大家的意见并把他们加进来(当然是在得到您的允许的情况下)

 

1、导入库文件

    使用ADO前必须在工程的stdafx.h文件最后用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下:
#import "C:Program Filescommon filessystemADOmsADO15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")

 ADO类的定义是作为一种资源存储在ADO DLL(msADO15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C++使用的COM vtable接口。当使用#import指令时,在运行时Visual C++需要从ADO DLL中读取这个类型库,并以此创建一组C++头文件。这些头文件具有.tli 和.tlh扩展名,读者可以在项目的目录下找到这两个文件。在C++程序代码中调用的ADO类要在这些文件中定义。
   程序的第三行指示ADO对象不使用名称空间。在有些应用程序中,由于应用程序中的对象与ADO中的对象之间可能会出现命名冲突,所以有必要使用名称空间。如果要使用名称空间,则可把第三行程序修改为: rename_namespace("ADONS")。第四行代码将ADO中的EOF(文件结束)更名为ADOEOF,以避免与定义了自己的EOF的其他库冲突。


2、初始化COM环境
   (1)::CoInitialize(NULL); //初始化OLE/COM库环境
        ::CoUninitialize();//既然初始化了环境,当然就有必要释放他了
   (2)也可以调用MFC全局函数
        AfxOleInit();

3、三大对象的定义和创建实例

   (1)  _ConnectionPtr pConnection("ADODB.Connection");
        _RecordsetPtr  pRecordset("ADODB.Recordset");
        _CommandPtr    pCommand("ADODN.Command");

   (2) _ConnectionPtr pConnection;
       _RecordsetPtr  pRecordset;
       _CommandPtr    pCommand;

       pConnection.CreateInstance(__uuidof(Connection));
       pRecordset.CreateInstance(__uuidof(Recordset));
       pCommand.CreateInstance(__uuidof(Command));

   (3) _ConnectionPtr pConnection;
       _RecordsetPtr  pRecordset;
       _CommandPtr    pCommand;

       pConnection.CreateInstance("ADODB.Connection");
       pRecordset.CreateInstance("ADODB.Recordset");
       pCommand.CreateInstance("ADODB.Command");

4、打开一个连接
  pConnection->Open(ConnectionString,"","",adModeUnknown);///连接数据库
 
  上面的连接字符串ConnectionString根据不同的数据源,分别对应不同的写法
  1)访问Access 2000
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassWord"

  2)访问ODBC数据
   "Provider=MADASQL;DSN=dsnName;UID=userName;PWD=userPassword;"
 
  3)访问Oracle数据库
    “Provider=MSDAORA;Data Sourse=serverName;User ID=userName;Password=userPassword;"

  3)访问MS SQL数据库
   "Provider=SQLOLEDB,Data Source=serverName;Initial Catalog=databaseName;User ID=userName;Password=userPassword;"

4、执行SQL命令
   SQL命令比较多,但是不去考虑细节,这里只说出通用的方法
   CString strSQL;//定义SQL命令串,用来保存SQL语句

   strSQL.Format("SQL statement");

   然后在每个要用到SQL命令串的方法中,使用strSQL.AllocSysString()的方法进行类型转换

5、com的专用数据类型
  
   variant ,bstr ,SafeArray
  
   variant变量的范围包括很多,使用_variant_t 进行管理
   bstr是一种字符串变量,使用_bstr_t进行管理
  
6、关闭连接
  
   if(m_pConnection->State)//不能多次关闭,否则会出现错误
           m_pConnection->Close();

7、结构化异常处理
   ADO封装了COM接口,所以需要进行错误处理
   如下例:
  HRESULT hr;
  try
  {
  hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
  if(SUCCEEDED(hr))
  {
  hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
  ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;  }
  }
  catch(_com_error e)///捕捉异常
  {
  CString errormessage;
  errormessage.Format("连接数据库失败!错误信息:%s",e.ErrorMessage());
  AfxMessageBox(errormessage);///显示错误信息
  }


8、错误原因的分析
   (1)不支持接口,可能是不能插入空值

 

好了,希望大家可以跟我一起完善这篇总结!

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C ado(ActiveX Data Objects)是一种用于连接数据库的编程技术,可以通过ADO对象来实现远程连接数据库。 远程连接数据库是指通过网络访问并操作位于其他计算机上的数据库。C ado提供了一种简单和高效的方法来连接不同类型的数据库,包括Microsoft SQL Server、Oracle、MySQL等。 要实现远程连接数据库,首先需要在C程序中引入相关的ADO库文件,并创建ADO连接对象。连接对象可以通过指定数据库连接字符串来传递必要的参数,如服务器地址、数据库名称、用户名和密码等。连接字符串的格式会根据使用的数据库类型而有所不同。 在连接对象创建后,可以使用其方法来建立实际的连接,这样程序就可以发送SQL查询和执行其他操作了。在成功连接后,可以使用SQL语句来执行插入、删除、更新和查询等操作。 连接数据库时,需要确保远程服务器的网络设置允许连接请求,并且目标服务器上的数据库服务处于运行状态。 在完成数据库操作后,应该记得关闭连接,释放资源,这样可以避免占用过多的系统资源和连接数。 总之,使用C ado可以方便地通过网络连接和操作远程数据库。通过适当的配置和编程,可以实现安全和高效的远程数据库连接,并对数据进行操作和管理。 ### 回答2: C ado 是一种用于远程连接数据库的技术。它是基于微软的ActiveX Data Objects(ADO)库开发的,并且是一种用于访问和操作各种数据库的标准接口。通过使用C ado,我们可以实现在应用程序中远程连接并操作数据库,以便进行数据的读取、插入、更新和删除等操作。 首先,我们需要在应用程序中引入C ado的库文件,并且初始化相关的对象和连接字符串。然后,我们可以使用C ado提供的函数和方法来创建连接对象,打开数据库连接,并执行SQL语句或存储过程等来对数据库进行操作。 在远程连接数据库时,我们需要确保数据库服务器开启远程连接功能,并且在连接字符串中指定正确的数据库服务器地址、用户名和密码等信息。在连接成功后,我们就可以通过C ado提供的命令对象来执行SQL语句,例如SELECT语句用于查询数据,INSERT语句用于插入数据,UPDATE语句用于更新数据,DELETE语句用于删除数据等。 C ado还提供了一些其他的功能和特性,比如事务处理、数据类型转换、错误处理等,以便我们进行更加灵活和有效的数据库操作。同时,它还支持多种数据库类型,如SQL Server、Oracle、MySQL等,使得我们可以在不同的数据库系统之间无缝切换。 总的来说,通过C ado,我们可以轻松实现应用程序与远程数据库之间的连接和数据交互,提高数据的访问效率和操作便捷性。它是一种强大而灵活的技术,被广泛应用于各种类型的软件开发中。 ### 回答3: cado是一种用于远程连接数据库的工具。它可以在计算机之间建立网络连接,并通过网络连接到远程数据库服务器。通过使用cado,用户可以在本地计算机上访问和操作远程数据库中的数据。 cado提供了一种简单而有效的方法来连接和管理远程数据库。用户只需要提供远程数据库服务器的IP地址、用户名和密码,就可以使用cado建立连接。一旦连接建立成功,用户就可以执行各种数据库操作,例如查询、插入、更新和删除数据。 与传统的本地数据库相比,cado的远程连接功能具有许多优势。首先,它可以让用户从任何地方远程访问数据库,无论是在同一网络内还是在跨越不同地区的网络中。这使得多人合作和远程工作变得更加容易和灵活。 其次,使用cado进行远程连接可以提高数据库的安全性。通过仅允许经过身份验证的用户访问数据库,远程连接可以帮助防止未经授权的访问和数据泄漏。 另外,cado还提供了许多其他的功能和工具,如数据备份和恢复、数据库管理和性能优化等。这些功能可以帮助用户更好地管理和使用远程数据库。 总而言之,cado是一种用于远程连接数据库的工具,它提供了一种方便、安全和灵活的方式来访问和操作远程数据库中的数据。无论是为了多人合作、远程工作还是为了提高数据库的安全性,cado都是一个非常有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值