??國產(chǎn)化軟件和國產(chǎn)化芯片的窘境一樣,一方面市場已經(jīng)存在性能優(yōu)越的同類軟件,成本很低,但小眾的國產(chǎn)化軟件不僅需要高價買入版權(quán),并且軟件開發(fā)維護(hù)成本高;另一方面,國產(chǎn)軟件目前普遍難用,性能不穩(wěn)定,Bug滿天飛,雖然可以去迭代,但是沒有人愿意耐心地等國產(chǎn)軟件迭代,甚至市場的生態(tài)不給國產(chǎn)軟件迭代的機(jī)會,選擇性忽視國產(chǎn),國內(nèi)公司也不會給工程師去試錯的機(jī)會,這直接限制了中國軟件的能力提升。
??雖然國產(chǎn)軟件處于劣勢,但是在涉及GJ安全的領(lǐng)域,國產(chǎn)化一詞是個香餑餑,處于強(qiáng)勢地位,尤其是中興事件以后,國產(chǎn)化會慢慢推進(jìn)。我們是支持國產(chǎn)化的,但是希望國產(chǎn)化軟件能夠主動創(chuàng)新,不要活在ZF和TZ的庇護(hù)下,永遠(yuǎn)長不大,偏安一隅,走不到市場去競爭。
??國產(chǎn)數(shù)據(jù)庫有達(dá)夢數(shù)據(jù)庫、人大金倉數(shù)據(jù)庫,本文主要講述人大金倉數(shù)據(jù)庫如何在windows 7/10操作系統(tǒng)上用C#編程語言通過ODBC接口訪問,來支持國產(chǎn)化。
人大金倉數(shù)據(jù)庫介紹
??北京人大金倉信息技術(shù)股份有限公司(簡稱:人大金倉)是中國自主研發(fā)數(shù)據(jù)庫產(chǎn)品和數(shù)據(jù)管理解決方案的領(lǐng)導(dǎo)企業(yè),由中國人民大學(xué)及一批最早在國內(nèi)開展數(shù)據(jù)庫教學(xué)、研究與開發(fā)的專家于1999年發(fā)起創(chuàng)立,至今已成功獲得中國電子科技集團(tuán)(CETC)旗下的普華基礎(chǔ)軟件股份有限公司和太極計(jì)算機(jī)股份有限公司的戰(zhàn)略注資,被納入CETC集團(tuán)的整體發(fā)展戰(zhàn)略。
??KingbaseES是人大金倉面向事務(wù)處理類、兼顧簡單分析類應(yīng)用的數(shù)據(jù)庫產(chǎn)品,可承載各行業(yè)管理信息系統(tǒng)和業(yè)務(wù)生產(chǎn)系統(tǒng)的相關(guān)業(yè)務(wù),可用于替代Oracle的大型通用關(guān)系型數(shù)據(jù)庫。(官網(wǎng)介紹,看看就好,明白怎么回事)
??因?yàn)槿舜蠼饌}需要購買版權(quán),現(xiàn)在網(wǎng)絡(luò)上流傳著一個古老的版本Kingbase ES V3.1,自備激活碼,本文以此數(shù)據(jù)庫為例,講述數(shù)據(jù)庫開發(fā)流程。
ODBC介紹
??人大金倉數(shù)據(jù)庫提供了基于開放數(shù)據(jù)庫連接(Open Database Connectivity, ODBC)的接口,ODBC為異構(gòu)數(shù)據(jù)庫訪問提供統(tǒng)一接口,允許應(yīng)用程序以SQL為數(shù)據(jù)存取標(biāo)準(zhǔn),存取不同DBMS管理的數(shù)據(jù),使應(yīng)用程序直接操縱DB中的數(shù)據(jù),免除隨DB的改變而改變。
軟件配置
??在安裝Kingbase ES V3.1時,請一定按照步驟安裝,這個版本比較古老,否則容易按照失敗,大概歸納為:
- 打開setup文件夾后,運(yùn)行setup,輸入序列號,安裝完成后如下圖所示:
安裝示意圖 - 安裝完成后,運(yùn)行前,在開始菜單打開數(shù)據(jù)庫初始化工具來初始化
- 運(yùn)行交互查詢工具,其中的用戶名是SYSTEM,密碼是MANAGER
- 如果提示連接服務(wù)器啟動失敗,查看數(shù)據(jù)庫服務(wù)管理器是否啟動,啟動失敗是無法運(yùn)行交互查詢工具的,如下圖所示:
數(shù)據(jù)庫服務(wù)管理器
??總之,數(shù)據(jù)庫安裝成功并建表后,如下圖所示,其中PUBLIC.MEMBERDB是本文根據(jù)演示需要建的表,儲存用戶信息。
數(shù)據(jù)庫示意圖
數(shù)據(jù)庫MEMBERDB表
創(chuàng)建ODBC
??安裝成功后,查看C:\Windows\SysWOW64\kodbc.dll是否存在,這是Kingbase和ODBC連接的驅(qū)動庫。
??因?yàn)閿?shù)據(jù)庫軟件是32位的,在控制面板的管理工具中,打開ODBC數(shù)據(jù)源(32位),點(diǎn)擊用戶DSN中的添加,查看是否存在Kingbase ODBC driver,如果不存在的話,可以運(yùn)行:C:\Windows\SysWOW64\odbcad32.exe,步驟和上面一樣。

??ODBC創(chuàng)建的具體步驟可以參考C#編程之ODBC連接數(shù)據(jù)庫數(shù)據(jù)源。ODBC創(chuàng)建成功后,可以點(diǎn)擊測試連接,會提示連接成功,如下圖所示。

C#開發(fā)
??本文提供了一個通過ODBC接口對Kingbase進(jìn)行增刪查改的類,在Win7/Win 10測試中均正常。
??在運(yùn)行本文的示例程序中,注意首先建表和實(shí)現(xiàn)ODBC連接,然后修改連接數(shù)據(jù)庫的字符串,conStr = "Driver={Kingbase ODBC Driver};Server=W;Uid=SYSTEM;Pwd=MANAGER;Database=TEST;";
??此外,Kingbased的交互查詢工具中,右鍵點(diǎn)擊表有“腳本化到窗口”,可以生產(chǎn)數(shù)據(jù)庫操作的SQL語句,方便數(shù)據(jù)庫的開發(fā)。比如“SELECT "ID","NAME","PASSWORD","MAN","LEVEL","ADDTIME" FROM "PUBLIC"."MEMBERDB";”
??附: 源代碼及數(shù)據(jù)庫下載
??如果文章幫助到你了,歡迎點(diǎn)贊和打賞,來支持我的原創(chuàng)!



