好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

编程实例ODBC篇.doc

13页
  • 卖家[上传人]:桔****
  • 文档编号:442860492
  • 上传时间:2022-08-24
  • 文档格式:DOC
  • 文档大小:616KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 达梦接口编程实例一一ODBC篇ODBQOpen Database Connectibvity )是被人们广泛接受的用于数据库访问的标准 API (应用程序编程接口)对于数据库 API,它以X/Open和ISO/IEC的Call-Level Interface(CLI) 规范为基础,并使用结构化查询语言(SQL作为其数据库访问语言结构化查询语言 SQL是一种用来访问数据库的语言通过使用 ODBC应用程序能够使用相同的源代码和各种各样的数据库交互这使得开发者不需要以特殊的数据库管理系统 DBMS^目标,或者了解不同支撑背景的数据库的详细细节, 就能够开发和发布客户/服务器应用程序达梦数据库(DM DATABASE以下简称 DM的 DM ODBC 3.0遵照 Microsoft ODBC 3.0 规范设计 与开发,实现了 ODBCS用程序与 DM的互连接口用户可以直接调用 DMODBC3.0接口函数访问DM 也可以使用可视化编程工具如 Visual C++、C++ Builder、PowerBuilder 等利用DM ODBC 3.0访问 DM本文中以武汉达梦数据库公司的 DMODBC3.0驱动程序为实例,以Visual C++为工具,在Windows2000 Professio nal 操作系统上,用一个实例来介绍 DM ODBC勺编程方法。

      1创建DM ODB(数据源在DM客户端软件安装过程中,如果选择了安装 ODB®动程序的相关选项,安装工具可完成将DM ODBC 3.0驱动程序复制到硬盘,并在 Win dows注册表中登记 DM ODBC区动程序信息的工作在使用DM ODB(方法访问一个DM数据库服务器之前,必须先对自己的应用程序所用的 ODBC资源进行配置在客户机上配置 DM ODB(资源的步骤如下:1.1依次打开控制面板-管理工具-数据源(ODBC)显示 ODBC数据源管理器对话框,如图 1.1.1所示图1.1.1 ODBC数据源管理器对话框1.2设置和配置一个系统 DSN请单击系统 DSN标签,单击添加按钮增加一个新的 DSN显示如图1.1.2所示的对话框2d创建番數雰源名称ili'M owe'DRTVEROrODBC Driver SQL Server选择您:揑为苴安装数据诱的驰动稈序迄)O版本1. 00.0i0.018.01.06.00Z000. ai.9030.04公司 华工达梦螯 Ortel» CoMicroioft衬 I 11上一完成 | 取消 |图1.1.2创建新数据源对话框1.3选择DM ODBC 3.0驱动程序,即 DM ODBC DRIVER单击完成按钮,显示如图 1.1.3所示的DM ODBC 3.0数据源配置对话框。

      图1.1.3创建新的DM数据源对话框1.4输入数据源的名称,一个简单的描述,并选择你想要连接的数据库服务器的名字,使用的 端口号,缺省使用的 DB,验证登录用户ID真伪的方式,如果使用 DM Server验证方式则需要输入登录数据源的ID以及密码等信息,选择系统提示信息的语种,以及选择是否使用 选项1.5单击测试按钮测试你配置的数据源是否正确,得到数据源测试报告如图DMServer的增强1.1.4所示,如果测试成功,可以单击确定按钮以保存你设置的新的系统数据源,如图 1.1.5所示图3.1.4数据源测试报告图3.1.5完成系统数据源的设置1.6单击确定按钮关闭 ODB(数据源管理器对话框2、DM ODBC应用程序编写的基本步骤使用DM ODB编程的基本步骤如图 2.1所示图2.1直接使用DM ODB(函数开发应用程序的基本步骤2.1 申请环境与连接句柄客户程序要和一个远程的服务器或数据库进行通讯, 必须首先和这个服务器或数据库建立连接,如何通过ODBC!立一个连接以及使用连接呢?是我们下面将要介绍的内容为了建立一个ODB(数据源连接,需要使用到环境句柄以及连接句柄句柄有一个层次的概念, 一个连接句柄总是和一个唯一的环境句柄相联系的, 所有的连接句柄必须在环境句柄释放之前释放。

      客户程序可以通过调用函数 SQLAllocHandle 来申请一个环境句柄,调用函数 SQLAllocHandle 时必 须传入句柄选项 SQL_HANDLE_EN当申请环境句柄成功之后,可以在此环境句柄上申请连接句柄申请环境句柄和连接句柄的代码示范如下:#include #include #include #include /*检测返回代码是否为成功标志,当为成功标志返回 TRUE否则返回FALSE */#define RC_SUCCESSFUL(rc) ((rc) == SQL_SUCCESS || (rc) == SQL_SUCCESS_WITH_INFO)/*检测返回代码是否为失败标志,当为失败标志返回 TRUE否则返回FALSE */#define RC_NOTSUCCESSFUL(rc) (!(RC_SUCCESSFUL(rc)))HENV henv; /* 环境句柄 */HDBC hdbc; /* 连接句柄 */SQLRETURN sret; /* 返回代码 */void main(void){/* 申请一个环境句柄 */SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);/* 申请一个连接句柄 */SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); }2.2声明应用程序的 ODBC版本在应用程序分配连接之前,必须先设置 SQL_ATTR_ODBC_VERSI环境属性。

      这个属性说明应用程序是遵循 ODBC 2.x还是ODBC 3.x规范设置环境句柄的 ODBC版本属性的代码范例如下:HENV henv; /* 环境句柄 */SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);2.3 连接数据源或驱动程序ODBC的连接是从数据源开始的,数据源是 ODBC对一个特定的数据库的别称为了访问由数据源提供的数据,你的程序中必须首先建立和数据源之间的连接,在环境和连接句柄正确分配之后, 才能通过这些连接管理数据访问连接 ODBC数据源时,ODBC提供三种不同的连接函数,即 SQLConnec、SQLDriverConnect 和SQLBrowseConnec,t 每个函数都有不同的参数以及不同级别的一致性SQLConnect是连接ODBC数据源的最基本的方法,在所有的一致性级别上都支持 SQLConnect函数有以下参数:连接句柄,数据源名称,数据源名称长度,用户名(用户 ID),用户名长度,用户口令以及口令长度返回代码有: SQL_SUCCE,SSQL_SUCCESS_WITH_I,NFSOQL_ERROR 或者SQL_INVALID_HANDLE使用SQLConnect函数连接数据源的代码示范如下:HDBC hdbc; /* 连接句柄 */sret = SQLConnect(hdbc, (SQLCHAR *)"DM4", SQL_NTS, (SQLCHAR*)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);if (RC_NOTSUCCESSFUL(sret)) {/* 连接数据源失败 ! */…进行相应的错误处理…exit(0);}SQLDriverConnect提供了比SQLConnect更灵活的方法来建立 ODBC连接。

      它支持:要求更多连 接参数的数据源;对话框提示用户输入所有的连接信息;以及没有在系统信息表中定义的数据源SQLDriverConnect 提供以下的连接方法:(1) 用一个连接字符串建立一个连接,这个字符串包括建立连接的所有数据,如 DSN 一个或 多个用户 ID 及其口令,以及其他的数据库所需要的连接信息2) 用一个并不完整的连接字符串来建立连接,使得 ODBC驱动程序管理器来提示用户输入所 需要的连接信息3) 用一个没有在系统信息表中登记的数据源建立连接, 驱动程序自动提示用户输入连接信息4) 用一个连接字符串建立连接,这个字符串在 DSN配置文件中是确定的SQLDriverConnect 函数 fDriverCompletion 参数说明:(1) SQL_DRIVER_PROM设置此选项用来显示一个对话框来提示用户输入连接信息2) SQL_DRIVER_COMPLE如果函数调用中包含了足够的信息, ODBC 就进行连接,否则弹出对话框提示用户输入连接信息,此时等同于 SQL_DRIVER_PROMPT(3) SQL_DRIVER_COMPLETE_REQUIR这个参数与 SQL_DRIVER_COMPLE参数唯一的不同是用 户不能改变由函数提供的信息。

      4) SQL_DRIVER_NOPROM如果函数调用时有足够的信息, ODBC 就进行连接,否则返回 SQL_ERROR使用 SQLDriverConnect 连接数据源的代码示范如下:HDBC hdbc; /* 连接句柄 */SQLCHAR szConnStrIn[256] = "DSN=DM4;DRIVER=DM ODBCDRIVER;DATABASE=SYSTEM;UID=SYSDBA;PWD=SYSDBA";SQLCHAR szConnStrOut[256];SQLSMALLINT cbConnStrOut;sret = SQLDriverConnect(hdbc, hwnd, szConnStrIn, SQL_NTS, szConnStrOut, 256, &cbConnStrOut, SQL_DRIVER_PROMT);if (RC_NOTSUCCESSFUL(sret)) {/* 连接数据源失败 ! */…进行相应的错误处理… exit(0);}SQLBrowseCo nnect 函数时,SQLBrowseConnect 函数与 SQLDriverConnect 函数相似,但是调用 程序在运行时可以再形成一个连接字符串,使用这个函数可以用一个交互的方式来决定连接到数据 源时所需要的一些信息。

      使用 SQLBrowseConnect 函数连接数据源的代码示范如下:HDBC hdbc; /* 连接句柄 */SQLCHAR szConnStrIn[256] =DRIVER;DATABASE=SYSTEM;UID=SYSDBA;PWD=SYSDBA;";SQLCHAR szConnStrOut[256];SQLSMALLINT cbConnStrOut;sret = SQL。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.