Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

Fehlermeldung "database is locked"

  Alt 7. Apr 2023, 16:09
Datenbank: SQLite • Version: 3.x • Zugriff über: FireDAC FDPhysSQLiteDriverLink
Hallo zusammen,

ich habe in einer Tabelle ein Feld (Details) als Blob-Feldtyp definiert.
Nun will ich über ein dxRichEdit (also kein DB-Control) dieses Feld bearbeiten, weil ich nur so die Möglichkeit sehe auch Formatierungen auf den Text anzuwenden.
Soweit, so gut.
Die im dxRichEdit vorgenommen Änderungen versuche ich wie folgt in die Tabelle zu übernehmen:
Delphi-Quellcode:
PROCEDURE Tfrm_Main.dxRichEditControl1Exit( Sender: TObject );
VAR
  AStream: TMemoryStream;
BEGIN
  IF NOT( DM.DS_Backlog.DataSet.State IN [dsEdit, dsInsert] ) THEN
  BEGIN
    AStream := TMemoryStream.Create;
    TRY
      dxRichEditControl1.DocumentModel.SaveDocument( AStream, TdxRichEditDocumentFormat.Rtf, '' );
      AStream.Position := 0;

      DM.DS_Backlog.DataSet.Edit;
      TBlobField( DM.DS_Backlog.DataSet.FieldByName( 'Details' ) ).LoadFromStream( AStream );
    FINALLY
      AStream.Free;
    END;
  END;
END;
Nach dem Exit von dxRichEdit sehe ich meine Änderungen aus dem dxRichEdit auch in dem Grid und der Haken zum speichern vom Navigator ist aktiv.

Egal was ich nun mache, ob ich etwa über den DB-Navigator speichern will oder direkt in meiner Procedure zum Schluss noch ein DM.DS_Backlog.DataSet.Post aufrufe, ich erhalte immer die Fehlermeldung
Zitat:
ERROR: database is locked
Weiß hier jemand Rat?

Vielen Dank vorab und noch einen schönen Feiertag!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat