#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

人大金仓KCI的更多相关文章

  1. 通过ODBC接口访问人大金仓数据库

      国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...

  2. DBeaver连接达梦|虚谷|人大金仓等国产数据库

    前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...

  3. QT 之 ODBC连接人大金仓数据库

    QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...

  4. 教你10分钟对接人大金仓EF Core 6.x

    前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...

  5. 通过jmeter连接人大金仓数据库

    某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...

  6. Rocky4.2下安装金仓v7数据库(KingbaseES)

    1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...

  7. 润乾配置连接kingbase(金仓)数据库

     问题背景 客户根据项目的不同,使用润乾连接的数据库类型各种各样,此文针对前几日使用润乾设计器连接kingbase金仓数据库做一个说明. kingbase金仓数据库是一款国产数据库,操作方式和配置 ...

  8. 金仓Kingbase数据库网页数据维护分析工具

    金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...

  9. linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)

    今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...

随机推荐

  1. git fatal: remote origin already exists错误解决方案

    $ git remote add origin git@github.com:AntonioSu/learngitWindows.git 在运行以上代码出现的错误,此错误是因为已经存在了远程分支,只需 ...

  2. 生产者和消费者模型producer and consumer(单线程下实现高并发)

    #1.生产者和消费者模型producer and consumer modelimport timedef producer(): ret = [] for i in range(2): time.s ...

  3. SQL必知必会02 过滤数据/条件查询

  4. 【Mybatis】CDATA

    忽视内部尖括号那些东西

  5. 2.第一个Vue程序

    1.IDEA中安装Vue.js插件 2.建立项目以及html文件 1.创建一个 HTML 文件 2.引入 Vue.js <script src="https://cdn.jsdeliv ...

  6. Spring Cloud组件使用/配置小记

    仅使用,无多少技术含量,权记于此以备忘. 微服务架构下的主要组件 服务注册组件:Consul.Etcd等 网关:Zuul.Spring Cloud Gateway等 容错框架:Hystrix 负载均衡 ...

  7. [灯火阑珊] 关于cmd命令里的findstr匹配多个关键词

    no raining now go to school and play with code 你. findstr "\<go  code\>" 这样就能匹配输出包含g ...

  8. centos7.5安装java JDK、tomcat、mysql

    参考资料: https://www.cnblogs.com/sxdcgaq8080/p/7492426.html https://blog.csdn.net/ds986619036/article/d ...

  9. Nacos集成Spring Cloud Gateway 基础使用

    项目结构 项目 端口 描述 nacos-provider 8000 服务 nacos-getway 8001 网关 nacos-provider项目依赖 <dependencies> &l ...

  10. Word文字中嵌套的图片向上突出,与文字的高度不一致

    文字中嵌套的图片向上突出,与文字的高度不一致. 调整方法: 选中图片,找到Font字体设置,选中位置下拉框,选择适当项. Select the inline graphic by clicking o ...