利用VC获取异构型数据库库结构信息59029

利用VC获取异构型数据库库结构信息59029

ID:47205011

大小:63.60 KB

页数:7页

时间:2019-08-26

利用VC获取异构型数据库库结构信息59029_第1页
利用VC获取异构型数据库库结构信息59029_第2页
利用VC获取异构型数据库库结构信息59029_第3页
利用VC获取异构型数据库库结构信息59029_第4页
利用VC获取异构型数据库库结构信息59029_第5页
资源描述:

《利用VC获取异构型数据库库结构信息59029》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、利用VC++获取异构型数据库库结构信息摘要:木文在介绍ODBC技术的基础上,将MFC和ODBCAPI结合起来创建了两个自定义类,实现了对任意异构型数据库库结构信息的获取。关键字:ODBC,MFC,异构型数据库,记录集一•问题的提出随着数据库技术在各个应用领域的迅速发展,市场上推出了多种数据库系统,为了充分利用资源,实现信息共享,以便用户能对异构型数据库实现透明的访问(包括数据查询、更新和交换等功能),作者开发了异构型数据库通信平台。在平台的研制过程中,获取各种异构型数据库的结构信息是进行数据访问的前提。作者以VC++5.0为开发语言,利用ODBC实现了这一关键技术。二.

2、ODBC技术介绍ODBC技术是指开放性数据库连接技术,该技术使应用程序无需关心数据源来自何种DBMS,利用其标准接口实现与数据源之间的数据交换。传统的ODBC编程是利用高级语言(如C语言)调用ODBC的API來实现。应用程序要求驱动程序管理器和每个駅动程序为ODBC环境、每个连接以及每个SQL语句分配信息存储空间,并返回指向各个存储区的句柄供其调用。ODBC接口定义了三种句柄类型:环境句柄:为全程信息标识内存存储,包括冇效连接句柄及当前活动连接句柄。ODBC将环境句柄定义为IIENV类型的变量。应用程序使用单一环境句柄,它必须在连接到数据源前请求该句柄。连接句柄:为特定

3、连接的信息标识了内存存储。ODBC将连接句柄定义为HDBC类型。应用程序必须在连接到数据源前请求连接句柄。每个连接句柄与环境句柄有关。然而,环境句柄可以有多个与其有关的连接句柄。语句句柄:为SQL语句信息标识内存存储。ODBC将语句句柄定义为IISTMT类型变量。应用程序必须在提交SQL请求之前请求语句句柄。毎个语句句柄与一个连接句柄有关。然而,每个连接句柄可以有多个与其相关的语句句柄。下面以C语言为例说明传统ODBC编程的一般过程。1、环境屮请,分配环境句柄HENVhenv;SQLAllocEnv(&henv);说明:分配-个环境句柄,支持-个或多个数据源连接。2、连

4、接申请,分配连接句柄IIDBChdbc;SQLAllocConnect(henv,&hdbc);说明:一个连接句柄对应一个数据源,可以有多个连接句柄。3、连接数据源,用连接句柄连接到数据源SQLDrivcrConncct(hdbc,…);说明:以对话框方式获取注册信息,并连接数据源。4、语句中请,分配语句句柄SQLAllocStmt(hdbc,&hstmt);说明:获得语句句柄,以便执行SQL语句。5、执行SQL语句SQLExecDirect(hstmt,SQLStatement,・・);说明:利用语句句柄,执行SQL语句。6、释放所有资源SQLfreeStemt(hs

5、tmst,...);//释放语句句柄SQLDisconncct(hdbc);//断开连接SQLFreeConnect(hdbc);//释放当前数据库连接句柄SQLFreeEnv(henv);//释放环境句柄三.利用VC卄和ODBC技术获取异构型数据库结构信息传统的ODBC编程过程比较复杂,各种参数不易理解,且直接获取返回的数据较困难。VC++5.0的MFC类库对ODBC的API进行封装,部分简化了ODBC编程(尤其是对数据库记录集的操作),但单纯利用MFC类获取界构型数据库的结构信息仍然比较困难,因此需要将MFC和传统ODBCAPI编程结合起來。作者利用ODBC接口函数

6、重载了MFC屮CKecordset类的部分成员函数,创建CTable和CColumns类。利用这两个新创建的类,可以很方便的获取界构型数据库结构信息。下面就是关于CTable和Ccolumns类的定义:classCTablc:publicCRccordsct{virtualCStringGetDefaultConnect(){return“";}virtualCStringGetDefaultSQL(){return〃“;}public:CTable(CDatabasc*pDatabasc);BOOLOpen(LPCSTRpszTableQualifier=NULL,L

7、PCSTRpszTableOwner=NULL,LPCSTRpszTableName二NULL,LPCSTRpszTableType二NULL,UINTnOpcnType=forwardOnly);CStringm_strTableQualifier;CStringmstrTab1eOwner;CStringmstrTab1eName;CStringmstrTableType;strRcmarksvirtualvoidDoFieldExchange(CFieldExchange*);};classCColumns:publicCRccor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。