Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Dataset.Cancel verwirft Änderungen NICHT (https://www.delphipraxis.net/216047-dataset-cancel-verwirft-aenderungen-nicht.html)

BlueStarHH 18. Okt 2024 15:50

Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC

Dataset.Cancel verwirft Änderungen NICHT
 
Hallo,

ich habe eine Firebirddatenbank mit einem Blob-Feld. Zugriff über eine TIBCTable. Wenn ich eine Datei ins Blob lade und danach MyTable.Cancel aufrufe, bleiben die Daten trotzdem im Blob. Warum?

Delphi-Quellcode:
    MyTable.Edit;
    MyTable.GetBlob('Doc').LoadFromFile('D:\test1.png');
    MyTable.Cancel;
    MyTable.GetBlob('Doc').SaveToFile('D:\test2.png'); <-- hier ist nun test1.png enthalten und nicht das ursprüngliche Bild.

Olli73 18. Okt 2024 18:02

AW: Dataset.Cancel verwirft Änderungen NICHT
 
Sieht für mich so aus: GetBlob liefert ein Objekt was durch das Cancel weder gelöscht noch refreshed wird, es wird vielmehr gecached; also bleibt der Inhalt.

Hatte mal ein ähnliches Problem bei Firebird + FireDAC.

Was man probieren kann:

- Einstellungen des DatSets bezüglich Blob / Cache anpassen.

- Schauen, ob es einen Befehl zum "Refresh" des Blob Objektes gibt (ggf. auch freigeben und neu erstellen des Blobs).

- RefreshRecord oder Refresh ausführen.

- Anders auf das Blob zugreifen als mit GetBlob (wenn möglich).

- Datenmenge schließen und wieder öffnen (unschön, aber letzte Wahl).

himitsu 18. Okt 2024 18:43

AW: Dataset.Cancel verwirft Änderungen NICHT
 
- hoffen Embarcadeo repariert es (in den nächsten Jahrzehnten)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz