C# 操作 人大金仓 ,附带 DEMO

那天我在咖啡馆,邻座小哥对着电脑敲代码,嘴里还念叨着"国产数据库怎么搞"。
他用的就是人大金仓,我这心里咯噔一下——这不就是上周刚摸的C操作人大金仓的DEMO吗?当时对着屏幕上的连接字符串琢磨了半天,现在看来,还真挺实用的。

记得调试那个建库命令的时候,电脑突然卡死,显示器蓝屏闪着"Kdbndp error 1 2 1 "。
我手忙脚乱重启了好几次,最后发现是端口冲突——端口5 4 3 2 1 被另一个进程占用了。
这让我想起之前配置MySQL连接时,差点把密码设成生日日期,幸好同事提醒改了。
等等,密码设置还有个细节,人大金仓对UID和PWD不能带引号,我上次写代码时差点忘了这个。

看这段代码里MoreSettings的用法,把DataBaseModel设成DbType.SqlServer就自动适配SQL Server的表名风格了。
这让我想起去年处理一个遗留系统时,客户要求把所有表名改成下划线风格,SqlSugar还真帮了大忙。
不过现在这个版本好像对Oracle模式支持不太友好,上次测试时发现建表时自动加的注释全没了。

Date类型那块注释写得特别清楚,记得测试时我用的是2 02 3 -03 -07 这个日期,人大金仓居然把转换后的字符串当成空值处理了。
这让我想起学PostgreSQL时,它的日期格式居然要带时区参数。
现在想想,国产数据库的兼容性测试还是得做足,上次有个项目因为没注意这个,上线后三个月才发现数据统计全错。

代码里IsAutoCloseConnection=true这个设置,我刚开始总以为是自动关闭连接,其实是个内存回收优化。
记得在处理大量数据时,把IsAutoCloseConnection设成false,内存居然飙到了9 0%。
不过现在SqlSugar的新版本好像改了,这个参数可能已经失效了。
得赶紧去官网看看最新文档。

最奇怪的是那个searchpath参数,在测试多架构支持时,突然发现查询会自动去指定的schema找表。
这让我想起以前在Oracle里用ALTER SESSION SET CURRENT_SCHEMA=xxx的用法。
看来国产数据库在兼容传统SQL特性上,还真下了一番功夫。

现在把这段代码拷贝到本地环境试试看,突然想到那个同事说的"国产数据库的驱动可能不稳定",得先确认下环境里是否装了Kdbndp的适配器。
要是又出什么奇怪的问题,估计又要折腾半天了。

SQLserver中CREATE TABLE 建成功后为啥找不到建好的表呢

前两天帮朋友整理资料,发现他的电脑上有一个Excel表格,乱糟糟的,像刚做完市场调查的样子。
他问我怎么整理,我随手打开表格,一看,哎哟,数据没整理好,连着几个数据列都是空白的。
我心里想着,这要是给客户看,得多丢人啊。
然后我就开始教他整理,第一步是选中所有数据,第二步是点击“数据”标签下的“删除重复项”,第三步是筛选出有价值的列,第四步是调整格式,让表格看起来清爽。
搞完之后,表格顿时规整多了,他看着直点头。
等等,我还记得有个事,有一次帮同事处理Word文档,因为没注意,把字体大小改大了,结果文档发过去,对方电脑上显示不出来,还得我重新发。
我突然想到,信息处理这事儿,细节真的很重要啊。