Hi,
ich hab mal wieder ein seltsames Anliegen, dass ich nicht verstehe und deshalb wahrscheinlich auch nicht lösen kann.
Ich greife aktuell dem Firebird
ODBC Treiber auf eine Firebird Datenbank zu. Funktioniert!
Ich kann selecten nach Herzenslaune.
Jetzt versuche ich folgendes:
Ich rufe mit einem
FDQuery.open(Select * from Tabelle where Primaerschlüssel = 123)
den zu ändernden Tabellenwert auf. Ich ändere den Wert folgendermaßen:
Delphi-Quellcode:
FDQuery.edit;
FDQuery.FieldByName('Dummer_Slogan').asString:='Jama jaja Ypipi Ypipi Jey';
FDQuery.post;
Problem, ich bekomme die Meldung
Code:
[FireDAC][DApt]-400. Update-Anweisung updated [0] anstelle von [1] Datensatz. Mögliche Ursachen: Aktualisierungstabelle hat keinen Primärschlüssel oder Zeilenbezeichner, Datensatz wurde von einem anderen Benutzer geändert/gelöscht
Hab auch schon rausgefunden was ich in der Queryumstellen kann. Es gibt in dem FDQuery DesignTimeObjekt eine Option die lautet:
Code:
Optionen --> Eintragen von Änderungen --> Anzahl der aktualisierten Datensätze prüfen
Wenn ich das raus lasse bekomme ich keine Fehlermeldung mehr.
Jetzt meine Frage:
Wenn ich es raus lasse, habe ich signifikante Nachteile? Warum ist mein
ODBC Treiber nicht in der Lage das abzufrühstücken? Und die Vielwichtiger Frage, wie kann ich das im Code definieren, bzw. geht das auch in der Connection?
Fragen über Fragen
Ich hoffe es gibt jemand der sich mit dem Thema schon mal außeinandersetzen musste und der mir einen kleinen Schups in die richtige Richtung geben kann