zoukankan      html  css  js  c++  java
  • 16.ADO

    一、VC访问数据库技术

      1. ODBC

        Open Database Connectivity,微软开放式数据互联。

        使用相同的这组API函数,访问和操作不同类型的数据库。

        前提是在访问之前,需要将数据库设置为ODBC数据源。

        MFC将这组函数封装,形成了ODBC类。只能访问关系型数据库。

      2. DAO

        基于ODBC的,目前已淘汰。

      3. OLE DB

        基于COM组件技术的,提供了一组用于访问和操作数据库的接口。

        功能和性能上都有了很大提高,能访问关系型和非关系型数据库。

        缺点是学习门槛高,比较复杂抽象。

      4. ADO

        基于OLE DB的,又做了封装,提供了更加简单的接口,逐渐流行起来,成为最广泛使用的技术之一。

      5. ADO.Net

        基于.Net平台,VB、VC、C#都可以使用一组访问数据库的类。

    二、使用ODBC类访问数据库

      1. 相关类

        CDataBase类 - 功能是连接和关闭数据库,还提供了执行SQL语句的功能。

        CRecordset类 - 功能是操作数据表中的数据。

        头文件 #include <afxdb.h>

      2. 使用

        2.1 设置ODBC数据源

          控制面板 --> 管理工具 --> 数据源ODBC

        2.2 打开数据源

          virtual  void  CDatabase::Open( LPCTSTR  lpszName,

                                                                  BOOL       bExclusive = FALSE,

                                                                  BOOL       bReadOnly = FALSE,

                                                                  LPCTSTR   lpszConnect = _(""));

        2.3 执行sql语句

          void  CDataBase::Execute( LPCTSTR  lpszSQL, int  nOptions = 0);

        2.4 获取字段的数量

          short  CRecordset::GetODBCFieldCount( short  nIndex, CString&  strValue );

        2.4 获取字段的标题

          void  CRecordset::GetODBCFieldInfo( short  nIndex, CODBCFieldInfo&  fieldInfo );

        2.6 获取字段的值

          CRecordset::GetFieldValue

        2.6 记录集的指针操作

          BOOL  CRecordset::IsEOF( );

          void  CRecordset::MoveNext( );

        2.8 关闭记录集

          virtual  void  CRecordset::Close( );

        2.9 关闭数据库

          virtual  void  CDatabase::Close( );

    三、使用ADO访问数据库

      ADO是独立于MFC之外一个单独的组件。在使用ADO时,需要将ADO组件导入到当前工程。

      1. 导入ADO组件 - msado15.dll

        #import  "组件路径"  no_namespace  rename("EOF", "ADOEOF")

        我电脑上的路径为:C:Program FilesCommon FilesSystemadomsado15.dll

        在工程的stdafx.h中添加以上导入语句,编译工程会生成msado15.tlh和msado15.tli两个文件

      2. 使用ADO组件前,初始化COM库

        CoInitialize(NULL); - 初始化COM库

        CoUninitialize(); - 卸载COM库

      3. 在MFC中使用ADO组件,需要C++数据类型与COM数据类型频繁转换,使得ADO组件的使用变得非常繁琐

        在实际开发中,将ADO组件的每个接口封装成C++的类,接口函数封装成类的成员函数,形成ADO组件的

        C++封装类。

      4. 接口的介绍

        4.1 Connection接口 - 功能与CDatabase类似

          使用CAdoDatabase类封装该接口

        4.2 Recordset接口 - 功能与CRecordset类似

          使用CAdoRecordset类封装该接口

      5. Connection接口的使用

        5.1 连接数据库

          Open( _bstr_t   connectionString,  //数据库连接字符串

                              _bstr_t   UserID,                 //数据库登录名称

                              _bstr_t   Password,             //数据库登录密码

                              long        option);                //数据库连接方式,-1表示不指定连接方式

          不同的数据库产品,数据库连接字符串各不相同。

          即使相同的数据库产品,由于版本不同,连接字符串也可能不同。

      6. Recordset接口的使用

        6.1 打开表

          Open( );

        

        

        

      

          

        

  • 相关阅读:
    string的sizeof
    计算程序运行时间
    sleep所在头文件
    Mysql复制表结构、表数据
    UIView属性
    UITextView
    UITextField属性
    UISwitch属性
    UISlide属性
    UISegment属性
  • 原文地址:https://www.cnblogs.com/csqtech/p/5749606.html
Copyright © 2011-2022 走看看