Forums Neueste Beiträge
 

Datenmanipulation erst nach dem Drucken

11/04/2008 - 11:45 von Alex Steinhauer | Report spam
Hallo!
Mein Programm soll beim ersten Start des Tages eine Liste ausdrucken.
D.h. aus der DB werden Daten ausgelesen, verarbeitet und an den
Drucker geschickt. Im Anschluss werden diese Daten aus der DB
gelöscht. Dieser Ausdruck erfolgt einmal tàglich. Es ist aber ein Paar
Mal vorgekommen, dass der Druck nicht erfolgte, weil der Drucker
defekt war. Die Daten waren weg und den Ausdruck gab es auch nicht.
Wie kann ich es bewerkstelligen, dass die Daten nur dann gelöscht
werden, wenn der Ausdruck tatsàchlich erfolgreich war? Kann man von
dem Drucker irgendwie Informationen bekommen, ob der Druck erfolgreich
ist? Oder geht es vll. mit Transaktionen? Ich habe mich damit noch nie
beschàftigt. Wàre super, wenn mir jemand ein Paar Tipps geben könnte.

Gruß
Alex
 

Lesen sie die antworten

#1 Peter Götz
11/04/2008 - 12:19 | Warnen spam
Hallo Alex,

Mein Programm soll beim ersten Start des Tages
eine Liste ausdrucken. D.h. aus der DB werden
Daten ausgelesen,



Was ist das für eine DB?
Wie (Zugriffsmodell ADO, DAO, RDO,...) werden die
Daten wohin (Recordset?) gelesen?

verarbeitet und an den Drucker geschickt.



Es gibt viele Möglichkeiten, Daten an einen Drucker
zu schicken. Sollen wir raten?

Im Anschluss werden diese Daten aus der DB gelöscht.



Je nach "Wichtigkeit" der Daten wàre es sicher günstiger,
diese Daten erst mal irgendwo zwischenzuspeichern um
so eine Datensicherung zu haben.

Dieser Ausdruck erfolgt einmal tàglich. Es ist aber
ein Paar Mal vorgekommen, dass der Druck nicht
erfolgte, weil der Drucker defekt war.



Das sollte normalerweise irgendeinen Fehler in
Deinem Programm auslösen, den Du dann hoffentlich
in einer entsprechenden Fehlerbehandlungsroutine
erkennst und entsprechend behandelst.

Die Daten waren weg und den Ausdruck gab es auch
nicht.



Das passiert, wenn a) eine Datensicherung fehlt und
b) keine ordentliche Fehlerbehandlung (u.a. für das
Drucken der Daten) vorhanden ist.


Wie kann ich es bewerkstelligen, dass die Daten nur
dann gelöscht werden, wenn der Ausdruck tatsàchlich
erfolgreich war?



Ohne zu wissen, wie Du Deine Daten druckst, kann
auch keine konkreten Hinweise für eine saubere
Fehlerbehandlung geben.
Ansonsten sollte man Daten, die evtl. spàter noch
gebraucht werden nicht einfach löschen, sondern
irgendwo als Sicherungskopie speichern.

Kann man von dem Drucker irgendwie Informationen
bekommen, ob der Druck erfolgreich ist?



Normalerweise löst ein ausgeschalteter Drucker, ein
Drucker ohne Papier, ein Drucker mit leerem Toner-
behàlter usw. usw. usw. einen Fehhler in Deinem
Programmablauf aus und auf den musst Du reagieren.


Oder geht es vll. mit Transaktionen?



Was willst Du mit einer Transaktion erreichen?
Eine Transaktion verwendet man, wenn man
sicherstellen muss, dass mehrere zusammengehörende
Änderungen an einer oder mehreren DB-Tabellen
vollstàndig oder eben gar nicht ausgeführt werden.
z.B. bei einer Buchhaltung wird man Soll- u. Haben-
Buchung in eine Transaktion verpacken. Sind beide
Buchungsschritte erfolgreich gewesen wird die
Transaktion mit Commit abgeschlossen, ist einer der
beiden Schritte gescheitert, wird die Transaktion mit
RollBack beendet um damit den Urzustand der Daten
beizubehalten.

Ich habe mich damit noch nie beschàftigt.



In Deinem Fall solltest Du Dich eher mit einer sauberen
Fehlerbehandlung für Deine Druckroutine(n)
beschàftigen und evtl. auch eine Sicherung Deiner
Daten vorsehen.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen