Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Fehlermeldungen abstellen (https://www.delphipraxis.net/26725-ado-fehlermeldungen-abstellen.html)

Ralf Stehle 28. Jul 2004 10:21


ADO Fehlermeldungen abstellen
 
Ich bekomme in meinem Programm immer wieder Fehlermeldungen wie fehlendes Zeilenhandling oder falsches Lesezeichen obwohl mein Programm sehr gut funktioniert.

Ist es möglich, einfach alle Fehlermeldungen für den Endanwender abzustellen?

Ralf

trifid 28. Jul 2004 12:16

Re: ADO Fehlermeldungen abstellen
 
Hallo Ralf,

Zitat:

Ist es möglich, einfach alle Fehlermeldungen für den Endanwender abzustellen?
a) vielleicht liegt es doch am Programmierer :zwinker:
b) baue einen try except um deine Abfragen ein und frage im Exception-Teil nach nichts ab.

Ralf Stehle 28. Jul 2004 12:37

Re: ADO Fehlermeldungen abstellen
 
Try Except habe ich schon probiert, das funktioniert nicht. Die Fehlermeldungen mit falschem Lesezeichen entstehen wahrscheinlich nicht durch meinen Programmcode selbst

Ich suche eine Möglichkeit, alle Fehlermeldungen abzufangen, irgendwo mit Errorhandling oder so

trifid 28. Jul 2004 12:46

Re: ADO Fehlermeldungen abstellen
 
Kannst du code zeigen, wo es zu falschen Lesezeichen kommt?

Delphi-Quellcode:
try
   Dataset.Close;
   Dataset.Open;
except
   on E : Exception do ShowMessage (E.Message);
end;
wenn hier nicht die Meldung erscheint, dann steckt es in den ADO-Komponenten oder es kommt vom DB-Server und ADO/OLEDB fängt es wiederum ab.

Wie entstehen bei dir falsche Lesezeichen?

shmia 28. Jul 2004 12:52

Re: ADO Fehlermeldungen abstellen
 
Zitat:

Zitat von Ralf Stehle
Try Except habe ich schon probiert, das funktioniert nicht. Die Fehlermeldungen mit falschem Lesezeichen entstehen wahrscheinlich nicht durch meinen Programmcode selbst

DBGrids benötigen Bookmarks (=Lesezeichen), damit diese mehrere Zeilen anzeigen können und anschliesend zum
aktuellen Datensatz zurückkehren können.
Es gibt nun 2 Fehlerquellen:
  • deine Tabelle hat keine Primärschlüssel
  • du verwendest Serverside Cursor, obwohl die Datenbank für diesen Cursortyp keine Bookmarks unterstützt.
    Dann musst du Clientside Cursor verwenden. (Property CursorLocation=clUseClient)
Zitat:

Zitat von Ralf Stehle
Ich suche eine Möglichkeit, alle Fehlermeldungen abzufangen, irgendwo mit Errorhandling oder so

Ich könnte dir verraten wie das geht, ABER ich will dir bei deinem Irrweg nicht helfen !
Stell dir vor, du möchtest eine Datei mit MS Word öffnen und nichts passiert;
nicht mal ne Fehlermeldung erscheint.
Du würdest die Programmierer verfluchen. :zwinker:

Ralf Stehle 28. Jul 2004 15:22

Re: ADO Fehlermeldungen abstellen
 
Vielen Dank für Eure Rückmeldungen. Die Lesezeichen-Fehlermeldung ist nur eine von verschiedenen Meldungen. Das verflixte ist aber, daß ich das nicht simulieren kann. Ich habe gerade alles mögliche versucht, um mein Programm zu Fehlermeldungen zu veranlassen, es funktioniert alles reibungslos. Ich benutze einen Serverseitigen Cursor, da mit Clientseitigem Cursor bei Eingaben mehrerer Benutzer im Netz schon Daten verloren gegangen sind, die nicht rechtzeitig gespeichert wurden. Das soll auch so bleiben (Lieber Fehlermeldungen und kein Datenverlust). Ich kann auch nicht sagen, welche Funktion die Fehlermeldung erzeugt, deshalb kann ich Sie auch nicht mit try except behandeln (oder ich müsste im gesamten Code Try Except-Schleifen eingeben, da ich vor lauter Schleifen sowieso kaum noch die Übersicht bewahre, möchte ich das vermeiden). Ich habe das Gefühl, das das DBGrid irgendwie Schuld daran ist. Ich habe gehört, das DBGrid von Delphi ist sowieso nicht so ganz hundertprozentig fehlerfrei programmiert. :roteyes:

Also doch einfach alle Fehlermeldungen ausschalten, aber das will mir shmia ja nicht verraten (hat wohl seine guten Gründe, da Fehlermeldungen sonst ja sehr brauchbar sind) :warn:

Falls bei meinen ungenauen Angaben keiner eine Idee hat, dann mache ich mich wohl doch an die Arbeit und baue in jede Procedure und function ein try except ein :coder:

shmia 28. Jul 2004 16:35

Re: ADO Fehlermeldungen abstellen
 
Jede Exception, die nirgends abgefangen wurde kommt bis ganz oben an die Benutzeroberfläche.
Die letzte Chance ist im Event Application.OnException.

Jetzt wäre es ja schlau, einen Stacktrace durchzuführen, damit man den Ursprung sieht.
In der JCL gibt es Units und Demos, die diesen Stacktrace ermöglichen.
Dazu muss man ausserdem noch in den Linker Optionen (mit TD32-DEbug Info) und Compiler-Optionen
(Stack Frames) aktivieren.
Das Programm wird so einiges grösser, aber das macht ja nix.

Ralf Stehle 29. Jul 2004 19:12

Re: ADO Fehlermeldungen abstellen
 
Lieber shmia

Vielen Dank für den Tipp mit der Fehlerbehandlung mittels Application.OnException.
Nachdem Du mir diesen Tipp gegeben hast, konnte ich mit Hilfe von Büchern und Internet diese Funktion benutzen, jetzt funktioniert alles bestens. Alle Fehlermeldungen werden abgefangen und in einem LogFile gespeichert, ich kann alle Fehler weiterhin lesen und versuchen zu korrigieren, der Endanwender bekommt davon wie gewünscht nichts mit und kann weiterarbeiten, falls der Programmablauf durch den Fehler nicht wesentlich behindert wird

Gruß Ralf :) :-D :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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