Sqlite Firedac数据库在 Delphi 10.3 IDE中运行时始终锁定-编译的可执行文件工作正常

nmpmafwu  于 2023-01-08  发布在  SQLite
关注(0)|答案(2)|浏览(124)

我在 Delphi 10.3.1中使用FiredacSqlite数据库时遇到困难
我正在使用Dbnavigator和DbGrid将新记录直接输入到选定的表中。每次我尝试发布新记录时,都会收到Firedac错误消息“错误:数据库被锁定'当我尝试删除记录时也会发生这种情况。这种情况只会在IDE运行时发生。我在许多论坛上读到过一些强调同一问题的帖子。我尝试过更改锁定模式设置,但问题仍然存在。必须离开IDE,运行可执行文件,测试并重新进入IDE进行调试,这是相当令人沮丧的。
任何帮助都将不胜感激。

tpxzln5u

tpxzln5u1#

如果在IDE中打开了Sqlite数据库或其中的表,则会出现"数据库已锁定"消息;这会锁定您的应用在运行时检测到并报告的数据库。
解决办法很简单:请确保该表未在IDE中打开,并且与它的FireDAC连接也未处于活动状态。

juud5qan

juud5qan2#

在我的应用程序中,我有一个负责返回连接的类,我实现了这个代码片段并解决了这个问题

function TModelConnection.Connection: TFDConnection;
begin
  System.TMonitor.Enter(FConnection);
  try
    Result := FConnection;
  finally
    System.TMonitor.Exit(FConnection);
  end;
end;

相关问题