我在Lazarus中将数据保存到SQLite数据库时遇到问题。当多个用户试图同时将数据保存到数据库时,会发生冲突,因为数据库被锁定。
有没有人遇到过类似的问题,并且知道如何解决它?也许有一种机制允许等待访问数据库?
下面是引发问题的示例代码:
SQLite3Connection1.Connected:=true;
sql:= 'Insert into data (a, b, c) values (:a, :b, :c)';
SQLMaterial.SQL.Text:=sql;
SQLMaterial.ParamByName('a').AsString:=text1;
SQLMaterial.ParamByName('b').AsString:=text2;
SQLMaterial.ParamByName('c').AsString:=text3;
SQLMaterial.ExecSQL; <-- collision problem
SQLMaterial.Close;
SQLite3Connection1.Connected:=false;
谢谢
我还在学习,还没有找到合适的解决方案。
1条答案
按热度按时间k4aesqcs1#
PRAGMA忙碌_timeout -被证明是一个很好的解决方案。