通过ODBC接口访问人大金仓数据库
国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高;另一方面,国产软件目前普遍难用,性能不稳定,Bug满天飞,虽然可以去迭代,但是没有人愿意耐心地等国产软件迭代,甚至市场的生态不给国产软件迭代的机会,选择性忽视国产,国内公司也不会给工程师去试错的机会,这直接限制了中国软件的能力提升。
虽然国产软件处于劣势,但是在涉及GJ安全的领域,国产化一词是个香饽饽,处于强势地位,尤其是中兴事件以后,国产化会慢慢推进。我们是支持国产化的,但是希望国产化软件能够主动创新,不要活在ZF和TZ的庇护下,永远长不大,偏安一隅,走不到市场去竞争。
国产数据库有达梦数据库、人大金仓数据库,本文主要讲述人大金仓数据库如何在windows 7/10操作系统上用C#编程语言通过ODBC接口访问,来支持国产化。
人大金仓数据库介绍
北京人大金仓信息技术股份有限公司(简称:人大金仓)是中国自主研发数据库产品和数据管理解决方案的领导企业,由中国人民大学及一批最早在国内开展数据库教学、研究与开发的专家于1999年发起创立,至今已成功获得中国电子科技集团(CETC)旗下的普华基础软件股份有限公司和太极计算机股份有限公司的战略注资,被纳入CETC集团的整体发展战略。
KingbaseES是人大金仓面向事务处理类、兼顾简单分析类应用的数据库产品,可承载各行业管理信息系统和业务生产系统的相关业务,可用于替代Oracle的大型通用关系型数据库。(官网介绍,看看就好,明白怎么回事)
因为人大金仓需要购买版权,现在网络上流传着一个古老的版本Kingbase ES V3.1,自备激活码,本文以此数据库为例,讲述数据库开发流程。
ODBC介绍
人大金仓数据库提供了基于开放数据库连接(Open Database Connectivity, ODBC)的接口,ODBC为异构数据库访问提供统一接口,允许应用程序以SQL为数据存取标准,存取不同DBMS管理的数据,使应用程序直接操纵DB中的数据,免除随DB的改变而改变。
软件配置
在安装Kingbase ES V3.1时,请一定按照步骤安装,这个版本比较古老,否则容易按照失败,大概归纳为:
- 打开setup文件夹后,运行setup,输入序列号,安装完成后如下图所示:
- 安装完成后,运行前,在开始菜单打开数据库初始化工具来初始化
- 运行交互查询工具,其中的用户名是SYSTEM,密码是MANAGER
如果提示连接服务器启动失败,查看数据库服务管理器是否启动,启动失败是无法运行交互查询工具的,如下图所示:
总之,数据库安装成功并建表后,如下图所示,其中PUBLIC.MEMBERDB是本文根据演示需要建的表,储存用户信息。
创建ODBC
安装成功后,查看C:\Windows\SysWOW64\kodbc.dll是否存在,这是Kingbase和ODBC连接的驱动库。
因为数据库软件是32位的,在控制面板的管理工具中,打开ODBC数据源(32位),点击用户DSN中的添加,查看是否存在Kingbase ODBC driver,如果不存在的话,可以运行:C:\Windows\SysWOW64\odbcad32.exe,步骤和上面一样。
ODBC创建的具体步骤可以参考C#编程之ODBC连接数据库数据源。ODBC创建成功后,可以点击测试连接,会提示连接成功,如下图所示。
C#开发
本文提供了一个通过ODBC接口对Kingbase进行增删查改的类,在Win7/Win 10测试中均正常。源代码及数据库下载
在运行本文的示例程序中,注意首先建表和实现ODBC连接,然后修改连接数据库的字符串,conStr = "Driver={Kingbase ODBC Driver};Server=W;Uid=SYSTEM;Pwd=MANAGER;Database=TEST;";
此外,Kingbased的交互查询工具中,右键点击表有“脚本化到窗口”,可以生产数据库操作的SQL语句,方便数据库的开发。比如“SELECT "ID","NAME","PASSWORD","MAN","LEVEL","ADDTIME" FROM "PUBLIC"."MEMBERDB";”
通过ODBC接口访问人大金仓数据库的更多相关文章
- QT 之 ODBC连接人大金仓数据库
QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...
- 通过jmeter连接人大金仓数据库
某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...
- DBeaver连接达梦|虚谷|人大金仓等国产数据库
前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...
- 教你10分钟对接人大金仓EF Core 6.x
前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...
- linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)
今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...
- 人大金仓KCI
#include "bin/libkci.h" static void exit_nicely(KCIConnection *conn) { KCIConnectionDestor ...
- Rocky4.2下安装金仓v7数据库(KingbaseES)
1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...
- 润乾配置连接kingbase(金仓)数据库
问题背景 客户根据项目的不同,使用润乾连接的数据库类型各种各样,此文针对前几日使用润乾设计器连接kingbase金仓数据库做一个说明. kingbase金仓数据库是一款国产数据库,操作方式和配置 ...
- Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用
真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今 ...
随机推荐
- HTTP的请求头标签 If-Modified-Since
一直以来没有留意过HTTP请求头的IMS(If-Modified-Since)标签. 最近在分析Squid的access.log日志文件时,发现了一个现象.就是即使是对同一个文件进行HTTP请求,第一 ...
- Oracle基础篇--01数据库控制语言DCL
数据库控制语言,是用户对数据的权限控制语言. 通过GRANT语句进行赋权,通过REVOKE撤回权限.数据库的权限包括2种,一种是数据库系统权限,一种是数据库对象权限.在控制语言里面,存在2个概念, 1 ...
- java编程--04比较几个常用的日期时间相关类的区别
第一篇,介绍日期的比较 第二篇,介绍日期的格式化 第三篇,介绍关于日期常用的计算 第四篇,比较几个常用的日期时间相关类的区别 第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得. 下面以一组思 ...
- restful风格下的ajax跨域问题的解决
Ajax跨域请求时,如果设置Header的ContentType为application/json,会分两次发送请求一次先发送Method为OPTIONS的请求到服务器,这个请求会询问服务器支持哪些请 ...
- [inner] bug
这样正确 command: ["sh", "-c", "mysql -h${DC_DB_HOST} -uroot -p${MYSQL_ROOT_PAS ...
- SCAU 算法课的题
8594 有重复元素的排列问题(优先做) 时间限制:1000MS 内存限制:1000K提交次数:1610 通过次数:656 题型: 编程题 语言: G++;GCC;VC Description ...
- 转:Android中的Handler的机制与用法详解
注:Message类的用法: message的几个参数都可以携带数据,其中arg1与arg2可以携带int类型,what是用户自定义的int型,这样接受者可以了解这个消息的信息. 说明:使用Messa ...
- [API]API运用实例
首先,在百度API:http://apistore.baidu.com/查找自己想用的api接口,例如:翻译: 利用postman工具进行测试: 返回结果为JSON字符串: { "errNu ...
- POJ 3164——Command Network——————【最小树形图、固定根】
Command Network Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 15080 Accepted: 4331 ...
- 学习JVM-GC原理
1. 前言 Java和C++之间显著的一个区别就是对内存的管理.和C++把内存管理的权利赋予给开发人员的方式不同,Java拥有一套自动的内存回收系统(Garbage Collection,GC)简称G ...