Discussion:
Änderungen in DB-Komponenten verwerfen/kontrolliert übernehmen
(zu alt für eine Antwort)
Heiko Baumann
2011-06-08 08:07:13 UTC
Permalink
Hallo zusammen,

nach mehreren Jahren Delphi-Pause hab ich beschlossenen, mal wieder eine
DB-Anwendung zu schreiben, die die Absenzenverwaltung unserer Schule
übernehmen soll.

Leichter gesagt als getan - es ist doch alles schon ganz schön lange
her... umso schöner finde ich es, wenn ich hier in der Newsgruppe noch
Namen lese, die mir früher schon öfter weitergeholfen haben - allen
voran Marian - find ich klasse dass du immer noch aktiv bist! :))

Zu meinem konkreten Problem: ich verwende immer noch Delphi6+MySQL 5.0
+Zeos 6.x.

Im Prinzip klappt schon alles, nur hänge ich an folgender Stelle:
in einer komplexen Query (dh. Felder über mehrere Tabellen verstreut)
stelle ich die Informationen in einem DBGrid oder auch DBEdit dar, die
vom Benutzer z.T. editiert werden. Doch wie geht das?
a) wie kann ich evtl. Eingaben vor dem Updateversuch canceln (hab alles
durchprobiert, keine der Methoden (z.B. in beforeApplyUpdates ein
cancelUpdates) hilft irgendwie)?
b) da ein direktes Update durch die Komponenten ja nicht geht (cannot
update a complex query), würd ich das gern "zu Fuß" an die DB
weitergeben - an welcher Stelle kann das steuern?

Das wär's (vorerst...) zumindest schon mal gewesen.

Vielen Dank für eure Hilfe!

LG.. Heiko
Perlsau
2011-06-09 11:42:26 UTC
Permalink
Post by Heiko Baumann
a) wie kann ich evtl. Eingaben vor dem Updateversuch canceln (hab alles
durchprobiert, keine der Methoden (z.B. in beforeApplyUpdates ein
cancelUpdates) hilft irgendwie)?
Zu welchem Zweck möchtest du Eingaben vor dem Update canceln?
Was verstehst du unter "canceln einer Eingabe"? Leeren des
entsprechenden Edit-Feldes?
Post by Heiko Baumann
b) da ein direktes Update durch die Komponenten ja nicht geht (cannot
update a complex query), würd ich das gern "zu Fuß" an die DB
weitergeben - an welcher Stelle kann das steuern?
Du erstellst vermutlich ein View mittels Query-Abfrage. Dieses View
kannst du logischerweise nicht editieren. Hilfreich wäre hier zu
erfahren, wie deine DB überhaupt aufgebaut ist.
Post by Heiko Baumann
Vielen Dank für eure Hilfe!
Keine Ursache, aber ich glaube, ich verstehe nicht, was dich bedrückt ...
Heiko Baumann
2011-06-09 18:59:20 UTC
Permalink
Post by Perlsau
Post by Heiko Baumann
a) wie kann ich evtl. Eingaben vor dem Updateversuch canceln (hab alles
durchprobiert, keine der Methoden (z.B. in beforeApplyUpdates ein
cancelUpdates) hilft irgendwie)?
Zu welchem Zweck möchtest du Eingaben vor dem Update canceln?
Was verstehst du unter "canceln einer Eingabe"? Leeren des
entsprechenden Edit-Feldes?
Ich habe eine Query, die Daten werden in versch. DB-Komponenten (DBEdit,
DBGrid) dargestellt.
Zum Teil möchte ich, dass diese Daten editiert werden können. Je nach
Fall sollen die Änderungen durch den Benutzer aber auch gecancelt werden.
Post by Perlsau
Post by Heiko Baumann
b) da ein direktes Update durch die Komponenten ja nicht geht (cannot
update a complex query), würd ich das gern "zu Fuß" an die DB
weitergeben - an welcher Stelle kann das steuern?
Du erstellst vermutlich ein View mittels Query-Abfrage. Dieses View
kannst du logischerweise nicht editieren.
Naja, das Ergebnis der komplexen Query als Ganzes nicht, wohl aber
einzelne Felder in den zugehörigen Tabellen. Hab jetzt so langsam mal
wieder das Update-Objekt der Zeoskomponenten angeschaut und alte Sourcen
rausgekramt, es wird langsam wieder (denn im Modify-SQL Statement des
Updateobjekts kann ich genau festlegen was wie upgedatet wird).
Post by Perlsau
Hilfreich wäre hier zu
erfahren, wie deine DB überhaupt aufgebaut ist.
Das spielt doch hier keine Rolle, es geht ja um ein grundlegendes "Wie
mach ich das" Problem. Naja, wird schon wieder - es ist alles doch ganz
schön lange her...
Post by Perlsau
Post by Heiko Baumann
Vielen Dank für eure Hilfe!
Keine Ursache, aber ich glaube, ich verstehe nicht, was dich bedrückt ...
Dann ist es wie immer, keiner versteht mich ;)

Danke trotzdem!

LG Heiko
Perlsau
2011-06-09 22:17:43 UTC
Permalink
Post by Heiko Baumann
Das spielt doch hier keine Rolle, es geht ja um ein grundlegendes "Wie
mach ich das" Problem. Naja, wird schon wieder - es ist alles doch ganz
schön lange her...
Okay, du kommst offenbar alleine zurecht und benötigst keine Hilfe.
Weshalb fragst du dann hier?
Heiko Baumann
2011-06-11 17:28:52 UTC
Permalink
Post by Perlsau
Post by Heiko Baumann
Das spielt doch hier keine Rolle, es geht ja um ein grundlegendes "Wie
mach ich das" Problem. Naja, wird schon wieder - es ist alles doch ganz
schön lange her...
Okay, du kommst offenbar alleine zurecht und benötigst keine Hilfe.
Weshalb fragst du dann hier?
Weil ich einzelne Detailfragen habe und hoff(t)e, dass mir da jemand
kurz auf die Sprünge hilft. Ich hab glücklicherweise aus alten Projekten
Sourcen, in denen ich das alles schon mal irgendwann irgendwie gemacht
hab, aber es hätte ja sein können, dass mir jemand sagt "ah, typisches
Problem, das fängt man hier so ab und dort so".

Das "Irgendwie-Lösen, so dass es zumindest funktioniert" kann ja meist
optimiert werden, und da sind Nachfragen doch erlaubt, oder...?

Naja, bis zum nächsten Mal - schöne Feiertage!
Perlsau
2011-06-12 12:11:01 UTC
Permalink
Post by Heiko Baumann
Post by Perlsau
Post by Heiko Baumann
Das spielt doch hier keine Rolle, es geht ja um ein grundlegendes "Wie
mach ich das" Problem. Naja, wird schon wieder - es ist alles doch ganz
schön lange her...
Okay, du kommst offenbar alleine zurecht und benötigst keine Hilfe.
Weshalb fragst du dann hier?
Weil ich einzelne Detailfragen habe und hoff(t)e, dass mir da jemand
kurz auf die Sprünge hilft. Ich hab glücklicherweise aus alten Projekten
Sourcen, in denen ich das alles schon mal irgendwann irgendwie gemacht
hab, aber es hätte ja sein können, dass mir jemand sagt "ah, typisches
Problem, das fängt man hier so ab und dort so".
Das "Irgendwie-Lösen, so dass es zumindest funktioniert" kann ja meist
optimiert werden, und da sind Nachfragen doch erlaubt, oder...?
Es war doch ganz einfach: ich hatte nicht so recht verstanden, worauf du
hinaus möchtest, habe nachgefragt und von dir zur Antwort erhalten, daß
der Gegenstand meines Nachfragens keine Rolle spiele. Da vergeht einem
die Lust, zu helfen.

Meiner Erfahrung nach gibt es beim Proggen kein "Irgendwie-Lösen, so
dass es zumindest funktioniert", sondern meist nur ganz bestimmte
Lösungswege, die mengenmäßig der Zahl der möglichen Irrwege weit
unterlegen ist.

Außerdem finde ich diese ständige Geheimniskrämerei um ein bissl Code,
den jeder durchschnittliche Programmierer selber hinkriegt, übertrieben.
Post by Heiko Baumann
Naja, bis zum nächsten Mal - schöne Feiertage!
Feiertage? Was sind denn schon wieder für Feiertage?
Nicole Wagner
2011-06-16 12:08:09 UTC
Permalink
Heiko Baumann wrote:


hier findest Du ganz viele Tutorials und Codeschnipsel.
http://delphi.about.com/

Insbesondere zu DBGrid findest Du ganz viele Anleitungen, sogar, wie Du
dort andere Komponenten einbettest.

Viel Spass!


Nicole

Loading...