秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  278 随笔 :: 0 文章 :: 308 评论 :: 20万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
lazarus使用zeosDB控件时发现SQLite一个奇怪的现象,应用程序编译为win64时,如果输入"中国2022中国"时出现乱码,win32和linux 64正常,开始怀疑的sqlite3.dll的问题,下载最新版sqlite源码重新编译sqlite3.dll也存在同样问题,改用lazarus自带的SQLDB 编译为win64/win32/linux64都使用正常, 暂时认为是zeosDB(使用最新的版本也有同样问题)编译为win64时存在Bug.
使用zeosDB,修改或插入“中国2022中国”后出现乱码:

 

 使用SQLDB控件可以参考以下设置:

   SQLiteLibraryName:='./libsqlite3.so'; //so存放当前目录
   SQLite3Connection1.DatabaseName:='./demo.db3';//db数据库文件存放当前目录
   SQLite3Connection1.Connected:=true;
   SQLTransaction1.Active:=true;
   DataSource3.DataSet:=SQLQuery1;
   SQLQuery1.SQL.Text:='select * from hardware';
   SQLQuery1.Open;

使用SQLDB时在注意以下:
1.可以使用SQLiteLibraryName指定sqlite3.dll或libsqlite3.so的位置
2.数据变更后除SQLQuery1.ApplyUpdates外,还要使用事务提交后才会将数据保存到数据库:SQLTransaction1.Commit;  

  SQLQuery1.ApplyUpdates();
  SQLTransaction1.Commit;

 使用SQLDB修改或插入“中国2022中国”能正常保存:

 

posted on   秋·风  阅读(502)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2020-10-21 QF中间件开源版
点击右上角即可分享
微信分享提示