使用达梦数据库api操作带返回结果集的查询语句

来源:互联网 发布:大数据交易qtjiaoyi 编辑:程序博客网 时间:2024/06/05 17:56

运行环境:KyLIn 3

数据库:DM

连接方式:API

选出BOOKSHOP数据库PERSON模式PERSON表的中员工信息

#include<stdio.h>

#include "api.h"


dm_henv henv; //环境句柄
dm_hdbc hdbc; //连接句柄
dm_hstmt hsmt; //语句句柄
dm_bool sret; //返回代码

char szpersonid[11]; //人员编码
long cbpersonid=0;

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

long cbname=0;

char szphone[26]; //联系电话
long cbphone=0;
int i=0;
long long row_num; //结果集行数

int  main()
{


//创建API运行环境

dm_api_init();

//申请一个环境句柄
dm_alloc_env(&henv);
//申请一个连接句柄
dm_alloc_connect(henv, &hdbc);
//连接到本地服务器
dm_login_port(hdbc, "localhost", "SYSDBA", "SYSDBA", 12345);
//申请一个语句句柄
dm_alloc_stmt(hdbc, &hsmt);
//立即执行查询人员信息表的语句
dm_direct_exec(hsmt, "SELECT personid, name, phone FROM bookshop.person.person");
//绑定数据缓冲区
dm_bind_column(hsmt, 1, DM_DATA_INT, TYPE_CHAR, szpersonid, sizeof(szpersonid), &cbpersonid, DM_DESC_PTR_LEN_DEFAULT);
dm_bind_column(hsmt, 2, DM_DATA_CHAR, TYPE_DEFAULT, szname, sizeof(szname), &cbname, DM_DESC_PTR_LEN_DEFAULT);
dm_bind_column(hsmt, 3, DM_DATA_CHAR, TYPE_DEFAULT, szphone, sizeof(szphone), &cbphone, DM_DESC_PTR_LEN_DEFAULT);
//取得结果集行数
dm_describe_row_num(hsmt, &row_num);
//取得数据并且打印数据
printf("人员编号 人员姓名 联系电话\n");
for(i=0; i<row_num; i++)
{
dm_fetch_scroll(hsmt, DM_FETCH_NEXT, 0);
printf("%s,%s,%s\n", szpersonid, szname, szphone);
}
//释放语句句柄
dm_free_stmt(hsmt);
//断开与数据源之间的连接
dm_logout(hdbc);
//释放连接句柄
dm_free_connect(hdbc);
//释放环境句柄
dm_free_env(henv);
return 0;
}

原创粉丝点击