Delphi FireMonkey+Zeoslib下SQLite3的VACUUM INTO等SQL突然报错
Delphi FireMonkey + Zeoslib 8.0 + SQLite3 语法错误排查请求
我用Delphi FireMonkey开发的应用,通过Zeoslib 8.0集成SQLite3数据库,将其作为项目状态容器而非常规数据库使用。为实现自动撤销功能,创建了大量触发器,示例如下:
CREATE TRIGGER Timepoints_BeforeUpdate BEFORE UPDATE ON TimePoints FOR EACH ROW BEGIN INSERT INTO UndoTable(UndoGroupID, UndoEventType, SQLText) VALUES(-1,3,"UPDATE TimePoints SET TimePointID="||quote(old.TimePointID)||", FrameID="||quote(old.FrameID)||", TimelineID="||quote(old.TimelineID)||", TimePointInMS="||quote(old.TimePointInMS)||", CameraInstanceID="||quote(old.CameraInstanceID)||", BinaryWorld="||quote(old.BinaryWorld)||", HoldTimeInMS="||quote(old.HoldTimeInMS)||", IsWayPoint="||quote(old.IsWayPoint)||" WHERE TimePointID = "||new.TimePointID); END
近期原本正常的SQL语句在应用中突然报错,但在数据库管理器中执行完全正常。例如以下语句:
VACUUM INTO "C:\Users\Support\AppData\Local\Temp\previs.vac"
应用报错信息:
SQL Error: SQL logic error or missing database
Message : near "INTO": syntax error
Code: 1 SQL: VACUUM INTO "C:\Users\Support\AppData\Local\Temp\previs.vac";
此前也曾遇到INSERT INTO ... ON CONFLICT语句报类似语法错误,移除触发器后问题解决,但此次已验证目标目录存在、目标文件不存在,仍无法解决VACUUM INTO的报错问题,求相关排查思路。
内容的提问来源于stack exchange,提问作者Byte Player
相关产品推荐
相关产品推荐

