人大金仓KCI
来源:互联网 发布:软件业务需求 编辑:程序博客网 时间:2024/06/08 02:59
#include "bin/libkci.h"static void exit_nicely(KCIConnection *conn){ KCIConnectionDestory(conn); exit(1);}int main(){ KCIConnection *conn; KCIResult *res; int nFields; int i, j; conninfo = "host = localhost port = 54321 dbname = TEST user = SYSTEM password = SYSTEM"; conn = KCIConnectionCreate(conninfo);// conn = KCIConnectionCreateDeprecated("localhost", "54321", NULL, NULL , "TEST", "SYSTEM", "SYSTEM", "0"); /* Check to see that the backend connection was successfully made */ if(KCIConnectionGetStatus(conn) != CONNECTION_OK) { fprintf(stderr, "Connection to database failed: %s", KCIConnectionGetLastError(conn)); exit_nicely(conn); } /* * Our test case here involves using a cursor, for which we must be inside * a transaction block. We could do the whole thing with a single * KCIStatementExecute() of "select * from sys_database", but that's too trivial to make * a good example. */ /* Start a transaction block */ res = KCIStatementExecute(conn, "BEGIN"); if(KCIResultGetStatusCode(res) != EXECUTE_COMMAND_OK) { fprintf(stderr, "BEGIN command failed: %s", KCIConnectionGetLastError(conn)); KCIResultDealloc(res); exit_nicely(conn); } /* * Should clear KCIResult whenever it is no longer needed to avoid memory * leaks */ KCIResultDealloc(res); /* * Fetch rows from sys_database, the system catalog of databases */ res = KCIStatementExecute(conn, "DECLARE myportal CURSOR FOR select * from sys_database"); if(KCIResultGetStatusCode(res) != EXECUTE_COMMAND_OK) { fprintf(stderr, "DECLARE CURSOR failed: %s", KCIConnectionGetLastError(conn)); KCIResultDealloc(res); exit_nicely(conn); } KCIResultDealloc(res); res = KCIStatementExecute(conn, "FETCH ALL in myportal"); if(KCIResultGetStatusCode(res) != EXECUTE_TUPLES_OK) { fprintf(stderr, "FETCH ALL failed: %s", KCIConnectionGetLastError(conn)); KCIResultDealloc(res); exit_nicely(conn); } /* first, print out the attribute names */ nFields = KCIResultGetColumnCount(res); for(i = 0; i < nFields; i++) { printf("%-15s", KCIResultGetColumnName(res, i)); } printf("\n\n"); /* next, print out the rows */ for(i = 0; i < KCIResultGetRowCount(res); i++) { for(j = 0; j < nFields; j++) { printf("%-15s", KCIResultGetColumnValue(res, i, j)); } printf("\n"); } KCIResultDealloc(res); /* close the portal ... we don't bother to check for errors ... */ res = KCIStatementExecute(conn, "CLOSE myportal"); KCIResultDealloc(res); /* end the transaction */ res = KCIStatementExecute(conn, "END"); KCIResultDealloc(res); /* close the connection to the database and cleanup */ KCIConnectionDestory(conn); return 0;}
编译需要链接库libkci.so
0 0
- 人大金仓KCI
- 人大金仓-逻辑备份、还原
- 人大金仓数据库使用总结
- 人大金仓数据库的使用心得
- 应用推动国产软件发展 质量彰显人大金仓品牌
- 人大金仓数据库兼容oracle参数调整compatible_level
- 国产数据库增量备份测试-人大金仓数据库
- 人大校内
- 人大游泳记-流水账
- 人大南路
- 人大首页女神高清组图
- 巴萨欧冠25人大名单
- 党委 政府 人大 政协
- 人大信息学院复试
- 召集令-3000人大集合
- 蛋星人大逃亡
- 蛋星人大逃亡
- 神校人大附中
- 技术开发人员为什么会无奈苦逼?
- 黑马程序员学习(十三) 正则表达式语法大全
- pluto实现分析(1)——前言、IKEv1概述、源文件概述
- android微信支付开发过程
- Xcode7 ios9 升级后出现的问题
- 人大金仓KCI
- Css的学习之旅-css的选择器(2)
- Maven3路程(四)用Maven创建Struts2项目
- TCP/IP网络通信编程知识点
- LeetCode题解——Linked List Cycle II
- upgrade from 12.04 to 14.04
- Linux Xargs命令详解
- 安卓客户端与html js 交互
- leveldb设计分析之log