如果说要使用第三方控件来链接操作数据库,我想UniDAC绝对是个很好的选择。对于sqlite来说,像这样能较好支持中文的第三方控件更是少有了。不过使用UniDAC来说可能会碰到一些有趣的问题,特别是对于新手来说。现在说说我安装控件后使用sqlite碰到的问题:
一、sqlite3.dll 不能被加载的问题
开始以为只要在程序主目录下就可以直接在链接时被调用,但其实不是这样的,默认情况下一般是从C:/windows/system32目录下调用的,至少对于编程工具来说这是默认的调用路径,所以将dll拷到目录下即可解决,这个其实也不算是什么问题。
二、UniDAC这个控件很有意思,在链接数据库时是不提供打开文件对话框的,如果你直接填写数据库名的话,这个数据库应该会是直接被建立在桌面上了。
三、数据库不能被打开,Database could not be Opened!
据说从3.5版本以后,sqlite是不支持中文路径的,不过我用3.5以上版本也能链接成功,当然,这是在解决问题之后,解决之前的问题是如果把路径设置为英语,那绝对是链接没问题,换中文的话打死也链接不上,所以我想这方面多少应该是有些关系的。
四、sqlite function is not linked!
sqlite的函数未链接,说白了就是函数调用失败,我不知道其它人碰到会是什么样的原因,但我这里碰到的应该是sqlite3.dll损坏造成的函数调用失败,不能说是肯定,但在替换过两次后,链接恢复正常。想了想,用sqlite3.dll的肯定不只一种软件,如果你安装这类软件时,软件没有检查sqlite3.dll的存在和版本,并且直接替换掉了你原来使用的dll,那就很有可能造成版本不兼容问题,从而导致数据库链接失败,至少我看到了,当我恢复我原来的dll时,另一个原来使用正常的软件挂掉了……
五、不是问题的问题,用UniDAC设置链接时我经常会看到unsuppored Metadata kind ,看上去不是什么特别的异常,应该只是设置链接的步骤不对,先把conneted设置为False再操作就OK了。
原文链接:https://www.f2er.com/sqlite/202712.html