• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
ADO在VC++中进行数据库编程
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
ADO在VC++中进行数据库编程
软件发布 ADO在VC++中进行数据库编程
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 编程技术 | VC教程 | ADO在VC++中进行数据库编程

ADO在VC++中进行数据库编程

 

添加时间: 2006-2-13 8:52:14  作者: VC教程  阅读次数:356   来源: http://d9soft.com

 

 

        ActiveX Data Objects (ADO)是用于访问数据的基于自动化的接口。ADO使用OLE DB接口访问范围广大的数据源,包括但不限于通过ODBC提供的数据。

  在这里我们不得不提到另一个对象RDS。Microsoft Remote Data Service (RDS)是ADO的一个组件,它为驻留在 Microsoft Internet Explorer上的应用程序提供快速有效的数据连接和数据发布框架。它是一种基于工作在 HTTP、HTTPS(在 Secure Sockets 层上的HTTP)和DCOM应用程序协议之上的客户端/服务器的分布式技术。RDS 使用数据识别ActiveX控件,向需要建立分布式、数据密集且用于企业内部网和Internet的应用程序的Web开发人员提供以Microsoft Visual Basic样式编程的数据访问。

  下面我们就在Visual C++6.0中利用ADO实现一个数据库编程的实际例子,以便让大家对ADO有一个认识。

  1.首先建立应用程序的框架并初始化运行环境(前面提到过ADO是用于访问数据的基于OLE DB接口访问的数据源,所以要初始化OLE/COM库环境)

  利用Visual C++的MFC AppWizard(exe)创建一个标准的单文档(Single Document)应用程序(比如采用默认设置)。

  2.引入ADO的库文件msado15.dll

  我们在使用ADO之前必须在工程中引入ADO的库文件msado15.dll。通常我们在文件“stdAfx.h”中将其导入;以便使编译器能正确的编译同时生成我们需要的.tli和.tlh文件。

  需要导入的代码如下:

  #include

  #import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","EndofFile")

  3. 利用智能指针(Smart Pointer)进行数据库操作

  在CaboutDlg类的定义中定义两个ADO的智能指针类实例(后面我们会比较详细地介绍ADO中的智能指针),同时添加一个Listbox用以显示我们从数据库中获得字段值。

  class CaboutDlg : public Cdialog

  {

  public:

  CaboutDlg(); //添加的代码

  _ConnectionPtr pConn;

  _RecordsetPtr pRst;

  ClistBox m_ListBox;

  ……

  }

  在ADO中的类库中包含有这样的三个智能指针,它们分别是: -ConnectionPtr,-RecordsetPtr,-CommandPtr。下面我们就针对这三个智能指针分别进行介绍:

  -ConnectionPtr,用来管理连接一个数据源提供者所要求的信息,并可通过Open和Close的方法来打开一个到数据源提供者的活连接(即Live Connection)。另外还可以建立和管理事务,如BeginTrans,CommitTrans和RollBackTrans。最后可以通过Excute这种方法在数据源上执行命令;

  -RecordsetPtr,封装数据源提供者返回的记录集合。使用该类可以浏览返回的记录,也可以插入一个新的记录,或者更新和删除一个已经有的记录;

  -CommandPtr,封装了一个要发送到数据库的命令串(比如通常用的SQL查询语句)。该命令可以是一个表的名字,或者一个存储过程,或者一个依赖数据源的串。

  4. 添加执行代码

  利用ClassWizard在CaboutDlg类中映射ON_WM_INITDIALOG消息添加一个对话框的初始化函数OnInitDialog();在该函数中添加以下的代码:

  BOOL CAboutDlg::OnInitDialog()

  {

  CDialog::OnInitDialog();

  //添加的代码

  _variant_t theValue;

  m_ListCtrl=(CListBox *)GetDlgItem(IDC_LIST_BOX);

  ASSERT(m_ListCtrl!=NULL);

  m_ListCtrl->ResetContent();

  pConn.CreateInstance(_uuidof(Connection));

  pRst.CreateInstance(_uuidof(Recordset));

  try

  {

  pConn→ConnectionString="DSN=Accounts";

  //设置连接字符串,利用ODBC连接Accounts

  数据库

  pConn→Open("","sa","",NULL); //打开连接

  pRst→Open("select * from Checking-Account",(IDispatch*)pConn,adOpenDynamic,adLockOptimistic,adCmdText);//执行一个SQL获得希望得到的数据集

  while (!pRst→EndofFile)

  {

  theValue=pRst→GetCollect("Owner_ID");

  if (theValue.vt!=VT_NULL)

  m_ListCtrl→AddString((char *)_bstr_t(theValue));

  pRst→MoveNext();

  }//遍历记录集,获得字段Owner-ID的字段值,同时将其添加到ListBox中去

  pRst→Close();//关闭记录集pRst

  pConn→Close(); //关闭连接pConn

  }

  catch(_com_error * e) //在这里对异常情况进行处理

  {

  CString Error=e→ErrorMessage();

  AfxMessageBox(e→ErrorMessage());

  }

  pRst=NULL;

  pConn=NULL;

  return TRUE;

  }

  在上述的代码中我们使用了这样一种数据类型:_variant_t ,它封装了Visual C++中的VARIANT类型(在Visual Basic中我们可能已经接触的比较多了);还有一种数据类型就是_bstr_t(宽字符型);有关这两种数据类型的详细介绍请参见MSDN。

  接下来编译该工程,然后运行。怎么样,是不是觉得使用起来很方便?!

 

 

 

上下文章:

 

上一篇文章: 改变指定的文件和文件夹的属性 下一篇文章: 用VC实现图象渐显和渐隐

相关文章:

  • Oracle专家高级编程学习笔记[1]
  • Oracle专家高级编程学习笔记[2]
  • Java网络编程之URI、URL研究专题一
  • Java网络编程之URI、URL研究专题八
  • Java网络编程之URI、URL研究专题七

相关软件:

  • 易语言汉语编程环境 V4.10
  • 超想中文汇编编程学习系统(中英对照版) V3.0
  • VFP完全控制大、中、小型数据库编程接口 V12.0
  • 超想CLOGO汉语编程系统 V1.00
  • 编程代码大全中文 PDF电子书
  • ASP编程完全手册 1.0

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VC++之Button控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Scroll Bar
  • VC++之Scroll Bar
  • VC++之List Box/Check List Box控...
  • VC++ Combo Box/Combo Box Ex控件
  • VC++ List Ctrl控件

VC教程阅读排行

  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • VC++之Button控件
  • VC++之Tab Ctrl控件
  • VC++之Edit Box控件
  • VC++之Edit Box控件
  • VC遍历整个目录树查找文件
  • 深入编程:控制面板知多少?
  • VC++之Scroll Bar

编程技术阅读总排行

  • VB入门教程之一
  • 第二章 PowerBuilder 入门之创建新...
  • Java连接数据库实例
  • 第一章 什么是PowerBuilder
  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有