AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Append löst Insert aus ... Hilfe ...
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von spechto · begonnen am 21. Jul 2009 · letzter Beitrag vom 21. Jul 2009
Antwort Antwort
spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#1

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

  Alt 21. Jul 2009, 19:00
Datenbank: Firebird • Version: 2 • Zugriff über: FIBPlus 6.9.6
Hi,

so langsam werde ich irre ... 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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Append löst Insert aus ... Hilfe ...

  Alt 21. Jul 2009, 19:04
Hat die Tabelle einen PK? Wie wird dieser gesetzt (Tigger))?
Markus Kinzler
  Mit Zitat antworten Zitat
spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Append löst Insert aus ... Hilfe ...

  Alt 21. Jul 2009, 19:50
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.
  Mit Zitat antworten Zitat
spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Append löst Insert aus ... Hilfe ...

  Alt 21. Jul 2009, 19:59
Jetzt verstehe ich gar nichts mehr ...

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
  Mit Zitat antworten Zitat
spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Append löst Insert aus ... Hilfe ...

  Alt 21. Jul 2009, 21:56
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
  Mit Zitat antworten Zitat
spechto

Registriert seit: 20. Jun 2009
28 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Append löst Insert aus ... Hilfe ...

  Alt 21. Jul 2009, 22:19
ja, ja, nun habe ich gut einen Tag gesucht ... und was war es ...

DBAdvGrid.DataSetType:=dtNonSequenced;

Das tut weh, dafür werde ich es wohl nicht mehr vergessen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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