Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Append löst Insert aus ... Hilfe ... (https://www.delphipraxis.net/137476-append-loest-insert-aus-hilfe.html)

spechto 21. Jul 2009 19:00

Datenbank: Firebird • Version: 2 • Zugriff über: FIBPlus 6.9.6

Append löst Insert aus ... Hilfe ...
 
Hi,

so langsam werde ich irre :gruebel: ... Ich habe hier ein Programmteil, der mich schier zur Verzweifelung bring. Vielleicht hatte jemand von Euch mal ein ähnliches Problem:

FIBPlusDatasetEregnisse mit einer Lese-Transaction (LT) und einer Update-Transaction (UT).
In der LT lese ich die Datensätze in ein AdvDBGrid. Sobald ich innerhalb der UT ein Append-Befehl gebe, schmiert das Programm ab (Exception: contraint-Fehler not Null), also ist ein Feld Null, welches aber nicht Null sein darf. Allerdings: Warum wird das beim Append ausgeführt? Die Felder können doch erst nach dem Append befüllt werden? Im SQL-Log sieht es so aus, als ob er mit dem Append gleich einen Insert ausführt, was ich leider nicht nachvollziehen kann, da der Post-Befehl erst nach dem Befüllen der Felder erfolgt ...

Hat jemand eine Idee, an welcher stelle ich da suchen kann? Könnte auch sein, das es ein FIBPlus-Problem ist ...

Grüße
Martin

mkinzler 21. Jul 2009 19:04

Re: Append löst Insert aus ... Hilfe ...
 
Hat die Tabelle einen PK? Wie wird dieser gesetzt (Tigger))?

spechto 21. Jul 2009 19:50

Re: Append löst Insert aus ... Hilfe ...
 
Ja hat sie, wird über Trigger gesetzt. Die Constraint, die ausgelöst wird ist aber nicht der PK, sondern ein Datum, welches nach dem Append mit = Now gesetzt wird. Merkwürdig ist halt, das direkt beim Append die Exception ausgelöst wird.

spechto 21. Jul 2009 19:59

Re: Append löst Insert aus ... Hilfe ...
 
Jetzt verstehe ich gar nichts mehr ... :wall:

Das Ereignis-Dataset wird mit "where Kunde=ID" gefiltert.
Liefert diese Datenmenge kein Ergebnis, funktioniert ein nachfolgendes Append.
Enthält die Liste Daten, läuft der Append-Befehl auf die Exception ...
Die Transaction öffne ich schon manuell, um Probleme in diesem Bereich ausschliessen
zu können.

Viele :?:

spechto 21. Jul 2009 21:56

Re: Append löst Insert aus ... Hilfe ...
 
So, habe jetzt zumindest eine Richtung, wo das Problem zu suchen ist:

Das DBAdvGrid habe ich gegen ein DBGrid ausgetauscht, und siehe da es läuft alles, wie es soll.
Die Frage ist natürlich jetzt, wo es aus den DBAdvGrid herkommt ...

Es sieht zumindest so aus, als würde beim Append innerhalb des Grids der Insert ausgelöst, was
natürlich zu früh passiert ...

Werde das Problem mal direkt ins TMS Forum posten ...

Grüße
Martin

spechto 21. Jul 2009 22:19

Re: Append löst Insert aus ... Hilfe ...
 
ja, ja, nun habe ich gut einen Tag gesucht ... und was war es ... :wall: :wall: :wall:

DBAdvGrid.DataSetType:=dtNonSequenced;

Das tut weh, dafür werde ich es wohl nicht mehr vergessen :)


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

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