国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高;另一方面,国产软件目前普遍难用,性能不稳定,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接口访问人大金仓数据库的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 人大金仓KCI

    #include "bin/libkci.h" static void exit_nicely(KCIConnection *conn) { KCIConnectionDestor ...

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

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

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

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

  9. Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用

    真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今 ...

随机推荐

  1. css3 移动端页面全屏旋转,横屏显示。

    css3旋转模拟手机横屏. 当手机不能自动旋转时,或有特殊需求.用css3 transform,实现横屏展示. 注意: 相关样式注意横屏的显示. touch的手势方向没有变,依旧是原来方向,若有相关插 ...

  2. Linux虚拟机无法通过宿主机上网

    解决方法 1.Windows: 确保相关服务已经启动 2.Linux: 确保相关服务已经启动 1) 确认Linux的IP地址和Windows在同一个网段: 若Windows给虚拟机分配的IP地址如下: ...

  3. (转)Shell脚本编程--Uniq命令

    uniq 原文:http://blog.csdn.net/xifeijian/article/details/9209627 uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用 ...

  4. MS-DOS

    MS-DOS doskey /history /reinstall /buffersize /macros doskey di=dir /w/p defrag 磁盘碎片整理 xcopy deltree ...

  5. Swift-表格

    //1.创建表格 let tv = UITableView(frame: view.bounds, style: .Plain) //2.添加到视图 view.addSubview(tv) //3.注 ...

  6. iOS UIWebView 和 WKWebView 的 cookie 获取,设置,删除

    Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Co ...

  7. intellijidea课程 intellijidea神器使用技巧 4-2 抽取

    1 抽取变量 Ctrl alt V 抽取变量 Ctrl alt C 抽取静态变量  顺带创建静态方法 Crrl alt F 抽取成员变量 2 抽取方法参数 Ctrl alt P 抽取参数,到方法体中 ...

  8. 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用

    从0到1构建适配不同端(微信小程序.H5.React-Native 等)的taro + dva应用 写在前面 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种 ...

  9. 从零开始的全栈工程师——js篇2.21(事件对象 arguments 阻止事件默认行为兼容 事件委托 事件源对象)

    一.事件对象 1.常用的事件2.每个元素身上的事件都是天生存在的 不需要我们去定义 只需要我们给这个事件绑定一个方法 当事件触发的时候就会执行这个方法 3.事件绑定的写法 ①div.onclick=f ...

  10. Object in Java same as pointer

    到目前为止,读者应对对象的“传递”有了一个较为深刻的认识,记住实际传递的只是一个句柄. 然而准确地说,Java是有指针的!事实上,Java中每个对象(除基本数据类型以外)的标识符都属于指针的一种.但它 ...