In den Sourcen von mORMot ist ein kleiner Bug bzgl. des Lock/UnLock von Records.
In der
unit SQLite3Commons;
muss folgendes angepasst werden
Delphi-Quellcode:
function TSQLRestClientURI.Retrieve(aID: integer; Value: TSQLRecord;
ForUpdate: boolean=false): boolean;
var Table: TSQLRecordClass;
Resp: RawUTF8;
begin
result := false;
if (self=nil) or (aID<=0) or (Value=nil) then
exit;
Table := Value.RecordClass;
if ForUpdate and not Model.Lock(Table,aID) then
exit; // error marking as locked by the client
with URIGet(Table,aID,Resp,ForUpdate) do
if Lo=200 then begin
Value.FillFrom(Resp);
Value.fInternalState := Hi;
if ForceBlobTransfert then
result := RetrieveBlobFields(Value) else
result := true;
end
else // dieser else-Zweig fehlt :o)
Model.UnLock(Table,aID);
end;
Der Autor ist aber recht fix mit dem Bug-Fixing, somit sollte dieser Fehler kurzfristig in den Original-Quellen behoben sein.
Fehlermeldung im Synopse-Forum
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)