达梦(DM)数据库DMODBC应用程序开发步骤

MoMo 2021年6月14日14:57:26
评论
175

应用程序使用 ODBC 访问数据源,可以按照以下几个基本步骤进行:

1. 调用函数 SQLAllocHandle 申请环境、连接句柄,调用函数 SQLSetEnvAttr 设置环

境句柄属性,调用函数   SQLSetConnectAttr   设置连接句柄属性,调用连接函数

SQLConnectSQLDriverConnect  SQLBrowseConnect 连接相关的数据源;

2. 调用函数 SQLAllocHandle 申请语句句柄,通过语句句柄应用程序可以执行 SQL 

句进行相关的 SQL 操作。调用函数 SQLPrepare  SQL 语句和操作进行准备,调

 SQLDescribeColSQLDescribeParam 等函数取得相关的描述信息,依据描述信

息调用   SQLBindColSQLBindParam   等函数绑定相关的列和参数,然后调用

SQLExecute  执行  SQL  语句,实现相关的  SQL  操作。应用程序也可以调用函数

SQLExecDirect 直接执行 SQL 语句进行相关的 SQL 操作;

3. 应用程序可以通过调用  ODBC  编目函数  SQLTablesSQLColumnsSQLStatistics

等取得数据源相关的字典信息;

4. 如果连接属性自动提交选项设置为手动提交状态,应用程序可以调用函数

SQLEndTran 来提交或回滚事务,进行相关的事务处理;

5. 调用函数 SQLFreeHandle 来释放申请的语句句柄;

6. 调用函数 SQLDisconnect 来断开应用程序与数据源之间的连接;

7. 调用函数 SQLFreeHandle 来释放申请的连接、环境句柄。

使用 ODBC 编程的基本步骤如图 3.9 所示:

达梦(DM)数据库DMODBC应用程序开发步骤

 3.9  直接使用 ODBC 函数开发应用程序的基本步骤

下面是一个调用 DM ODBC 3.0 的简单实例:

#include <windows.h>

#include <stdio.h>

#include <sql.h>

#include <sqltypes.h>

#include <sqlext.h>

/*  检测返回代码是否为成功标志,当为成功标志返回 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; /*  连接句柄  */

HSTMT hsmt; /*  语句句柄  */

SQLRETURN sret;/*  返回代码  */

char szpersonid[11]; /*人员编号*/

SQLLEN cbpersonid=0;

char szname[51]; /*人员姓名*/

SQLLEN cbname=0;

char szphone[26]; /*联系电话*/

SQLLEN cbphone=0;

void main(void)

{

/*  申请一个环境句柄 */

SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);

/*  设置环境句柄的 ODBC 版本 */

SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,

SQL_IS_INTEGER);

/*  申请一个连接句柄 */

SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

SQLConnect(hdbc,   (SQLCHAR   *)"DM",   SQL_NTS,   (SQLCHAR   *)"SYSDBA",   SQL_NTS,   (SQLCHAR

*)"SYSDBA", SQL_NTS);

/*  申请一个语句句柄 */

SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hsmt);

/*  立即执行查询人员信息的语句 */

SQLExecDirect(hsmt, (SQLCHAR *)"SELECT personid, name, phone FROM person.person;", SQL_NTS);

/*  绑定数据缓冲区 */

SQLBindCol(hsmt, 1, SQL_C_CHAR, szpersonid, sizeof(szpersonid), &cbpersonid);

SQLBindCol(hsmt, 2, SQL_C_CHAR, szname, sizeof(szname), &cbname);

SQLBindCol(hsmt, 3, SQL_C_CHAR, szphone, sizeof(szphone), &cbphone);

/*  取得数据并且打印数据  */

printf("人员编号  人员姓名  联系电话\n");

for (;;) {

sret = SQLFetchScroll(hsmt, SQL_FETCH_NEXT, 0);

if (sret == SQL_NO_DATA_FOUND)

break;

printf("%s  %s   %s\n", szpersonid, szname, szphone);

}

/*  关闭游标,终止语句执行  */

SQLCloseCursor(hsmt);

/*  释放语句句柄   */

SQLFreeHandle(SQL_HANDLE_STMT, hsmt);

/*  断开与数据源之间的连接  */

SQLDisconnect(hdbc);

/*  释放连接句柄  */

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

/*  释放环境句柄*/

SQLFreeHandle(SQL_HANDLE_ENV, henv);

}

https://xpanx.com/
MoMo
  • 本文由 发表于 2021年6月14日14:57:26
  • 转载请务必保留本文链接:https://xpanx.com/2937.html
统信uos邮箱设置 统信UOS操作系统

统信uos邮箱设置

在邮箱主界面,单击 。进入邮箱设置界面,可进行帐号设置、基本设置、反垃圾设置 及高级设置。(如图 4.22 所示) 1.账号设置 邮箱帐号:增加或删除邮箱帐号,单击【添加帐号】,可继续添加新的邮箱帐号...
统信uos邮箱主界面介绍 统信UOS操作系统

统信uos邮箱主界面介绍

邮箱主界面由邮箱帐户、邮箱目录、邮件列表、邮件正文、写邮件、收邮件、通讯录、搜 索等组成,如图 4.21 所示。 表 4.4 主界面介绍图表 1 写邮件 快速开始写邮件。 2 通讯录 展示通讯录列表及...
统信uos浏览器个性化设置 统信UOS操作系统

统信uos浏览器个性化设置

浏览器的基础设置如刷新网页、浏览历史记录、进入主菜单、显示下载记录、打开标签页 等(如图 4.13 和表 4.3 所示) 表 4.3 图标 说明 图标 说明 单击转到上一页,右击显示浏览历史。 添加标...
统信uos云端应用 统信UOS操作系统

统信uos云端应用

1 登录您的网络帐号,点击【我的应用】选项,单击 【云端应用】,即可看到该帐号 下安装的全部云端应用。如图 4.9 所示 2 选择想要安装的云端应用,单击 。 3 安装完后,应用会同步显示在本地应用和...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: