1.在使用zeos时发现可以绕过外键删除数据,原来zeos默认没有打开外键功能,必须明确执行这个:
ZConnection1.Connect; ZConnection1.ExecuteDirect('PRAGMA foreign_keys=ON');
感谢网友步惊云提供解决方案!
2.使用zeos ZQuery.filter发现使用like '%aa%'不起作,最后在lazarus官方论坛找到答案,原来lazarus DB like的通配符使用*而不是使用常用的%,*的用法和%一样。
zquery1.filtered:=false; zquery1.filter:=' Abstract like '+quotedstr('*'+Edit1.text+'*'); zquery1.filtered:=true;
3.zeos SQLite加密的使用方法:
lazarus在linux arm64使用SQLite数据加密的方法
4.如果表使用了中文字段时,中文字段要用双引号:
ZQuery1.Filtered:=false; ZQuery1.Filter:='"地址"'+' like '+ QuotedStr( '*'+edit1.text+'*' ); ZQuery1.Filtered:=true;
5、如果使用SQLite3,经验告诉你,最好指定so和db绝对路径(so和db放执行文件同一目录)
ZConnection1.LibraryLocation:=ExtractFilePath(Application.ExeName)+'libsqlite3.so'; ZConnection1.Database:=ExtractFilePath(Application.ExeName)+'demo.db3';