|
本帖最后由 yulihua49 于 2025-9-15 21:13 编辑
谢谢你的批评。我在努力学习,所以跟这里的大佬进行沟通。也请你看看206楼,提点意见。
另外,我的数据库包装器有DB2的,是2010年在与IBM协作中开发的。用的CLI和ORACLE兼容模式。开发完测试也挺有意思,两个人写同一个插入数据的测试程序,我的包装器比他快40多倍。我没跟老板说,他用的是插入值,我用的是绑定变量。
后来,一个项目,原来是基于ORACLE的。突然业主提出改DB2。
开发一半的系统,换数据库。。。。。。。。
这个系统有好几个小组,一个是C++的,一个是数据库的,还有其它的。
C++这个组使用的就是我这个包装器,恰好在IBM弄的DB2包装器派上了用场,所谓包装器,就是不管底层用什么数据库,应用函数是一样的,所以应用程序基本不需要改,这也是柔性编程的一个方面。
2天功夫移植完成,之后一个星期就是协助数据库组调整存储过程。因为那些存储过程都是通过前面的C++程序调用的。一个负责数据传输的哥们,原来没用我的数据库包装器,自己用ORACLE的OCI,反正也是高手。换DB2的时候,搞了一下CLI,搞不定,后来还是找我要去了DB2的包装器才改成功。
看我前边的程序了吧,使用数据库不写SQL语句,让程序生成SQL语句,不仅是省事,不易错,更重要的是,可以更换数据库,每种数据库,SQL语句是略有差异的,这个差异在语句生成器里被调整过来了。
最有意思的是SYBASE的语句生成器,要想把他数据库里的日期类型变量翻译成ORACLE格式老复杂了。遗憾的是,MYSQL包装器的批处理没搞出来,最近跟AI学习了一下,可以搞,可惜,退休了,手边没有开发环境。
批量处理,ORACLE用的是OAD,DB2直接用DAU。有这么一点差异,移植时需要改。
DB2的那个系统投产了,用的挺好,就是有一个奇怪的问题,服务器连续运行3个多月就会崩溃。检查没有内存泄露。估计是内存碎片化,内存分配失败就会崩溃。似乎没有ORACLE稳定。
|
|