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!