Thema: Delphi Commit geht nicht (SQL)

Einzelnen Beitrag anzeigen

urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#29

Re: Commit geht nicht (SQL)

  Alt 23. Aug 2003, 11:02
Hallo Hansa,
Zitat von Hansa:
Finde ich schon stark, wie Du meinen Quelltext zerpflückt hast. Das ist nicht ironisch gemeint
Hatte ja eigentlich keine Zeit, konnte mich dann aber doch nicht zurückhalten.

Zitat von urs.liska:
Verständnisfrage: Du willst eingeben, dass Artikel in das Lager eingestellt werden, richtig (wenn es auch um rausnehmen geht, verstehe ich nicht, wozu dann das Insert gut sein sollte)?
Zitat von Hansa:
Ganz einfach, weil es Leute gibt, die Sachen verkaufen, die noch nicht im Lager gebucht sind. Dadurch können sogar negative Lagerbestände entstehen. Das Programm sollte schon in der Lage sein, mit so was umzugehen. Umsatz ist schon wichtiger, als das Lager. Zum Schluß muß natürlich wieder alles stimmen.
Aha. Seltsame Sache, das, etwas zu verkaufen, was man gar nicht hat Aber so ist mir klar, was es soll. In dem Zusammenhang wäre es vielleicht nett, in den Triggern AFTER INSERT und AFTER UPDATE (bei Firebird 1.5 geht das dann in einem Trigger!) ein EVENT auszulösen, falls MENGE < 0 ist. (Aber wenn Du so viel rausgelöscht hast, hast Du ja vielleicht daran auch schon gedacht).

Zitat von urs.liska:
Außerdem: was kiar sagt, stimmt: Transaktionen sollten so kurz wie möglich sein.
Zitat von Hansa:
Und ein Programm unter der Maxime zu schreiben: das läuft niemals im Netzwerk, das gewöhne ich mir gar nicht erst an.
Sehr vernünftig (Auch das ist nicht ironisch gemeint).
Viel Erfolg. Wahrscheinlich sehen wir uns im Transaktionen-Thread wieder, denn ich habe zwar in meinem letzten Beitrag kategorische Lehrmeistersätze von mir gegeben, aber wirklich praktische Erfahrungen habe ich auch noch recht wenige (ich sitze gerade an meiner ersten _größeren_ DB-Anwendung, die ich "sauber" machen will )

MFG
Urs

P.S. ich kenne mich auch nicht mit FIBPlus aus. Sorry.
Aber ich weiß, dass die verschiedenen spezialisierten DB-Komponentensammlungen insbesondere beim Caching, also dem Zwischenspeichern der Daten, eigene Wege gehen (oft, um die Performance zu steigern). Ich halte es daher weiterhin für nahe liegend, dass Dein "Datenverlust" damit zusammen hängt, dass Du die Daten mit der falschen Methode (SelectSQL) einfügst. Die Tatsache, dass Du in Deiner Anwendung nach einem Insert die Daten sehen kannst(was ich mir bis jetzt nicht wirklich erklären kann), könnte mit so einem FIBPlus-spezifischen Caching-Phänomen zusammen hängen. Daher nochmal der Tipp: suche Dir eine Komponente, die SQL-Anweisungen "Executed" und nicht "öffnet", d.i. entweder eine DataSet mit InsertSQL/UpdateSQL oder eine spezielle SQL-Komponente (bei IBX heißt die TIBSQL).
  Mit Zitat antworten Zitat