国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高;另一方面,国产软件目前普遍难用,性能不稳定,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:WindowsSysWOW64kodbc.dll是否存在,这是Kingbase和ODBC连接的驱动库。
因为数据库软件是32位的,在控制面板的管理工具中,打开ODBC数据源(32位),点击用户DSN中的添加,查看是否存在Kingbase ODBC driver,如果不存在的话,可以运行:C:WindowsSysWOW64odbcad32.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";”