通过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,从昨天到今 ...
随机推荐
- linux 6 查看防火墙状态及开启关闭命令
linux 6 查看防火墙状态及开启关闭命令 https://blog.csdn.net/lv_shijun/article/details/52453882 存在以下两种方式: 一.service方 ...
- 可视化开发_AppInventor2似乎被抛弃了
工具 blockly google,mixly,scratch,app inventor2 的分别 可视化编程,青雀,来自 白鹭 没源码 如果想二次开发呢,初版拖拽控件生成,后期维护的时候找程序员加功 ...
- 安装Python + Selenium
1.Python下载与安装 先去Python官网下载安装包:http://www.python.org/ 下载后按步骤安装(最好不要安装到系统盘) 安装好后将安装路径(Python和Scripts) ...
- maya怎样卸载干净
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- jQuery源码解读 --- 整体架构
最近学习比较忙,感觉想要提高还是要读源码,所以准备考试这个考试结束就开始读jquery源码啦,加油~
- 案例52-crm练习新增客户中加入文件上传功能(struts2文件上传)
1 jsp/customer/add.jsp 完整代码: <%@ page language="java" contentType="text/html; char ...
- linux下文件比对功能
很想对吧两个文本有什么不同,可linux下有没有那么方便的工具,怎么办?其实也很简单:diff命令,一行搞定. 新建a.txt文件
- HUD 5593——ZYB's Tree——————【树形dp】
ZYB's Tree Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tota ...
- 报表XtraReport创建是实现
1.创建XtraReport报表程序 一般设计这个程序是分着的,为了方便我就把他们合到一起 首先创建一个Winform Application 在form1中放一个button,右键程序,添加新项 如 ...
- JS URL解析
function urlParse(url) { try { var hostexp = /http\:\/\/([^\/]+)/; var hoststr = url.match(hostexp)[ ...