Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Insert fehler abfangen (https://www.delphipraxis.net/52073-insert-fehler-abfangen.html)

Lilo 23. Aug 2005 13:50

Datenbank: Access • Zugriff über: ADO

Insert fehler abfangen
 
hi

und zwar hab ich folgendes problem...

ich habe in meiner access db ein spalte die unique ist... wenn ich jetzt einen doppelten bezeichner eintragen möchte bringt die db einen fehler ^^ :lol: eigentlich logisch :mrgreen: das möchte ich irgendwie so lösen, das ich diesen fehler abfangen kann, um meinen eigenen text da rein zu bringen ^^ ich möchte auch nicht unbedingt vorher die tabelle selber durchsuchen denn das macht ja die db so oder so beim eintragen...

gibts da irgendwie ne ganz simple lösung ? so ne art testversuch die daten rein zu schreiben und wenns schief geht, dann eben fehler den ich dann eben auf irgend ner variable auswerten kann.


gruß lilo

Bernhard Geyer 23. Aug 2005 14:00

Re: Insert fehler abfangen
 
Delphi-Quellcode:
try
  Insert-Anweisung
except
  ShowMessage('Mein Fehlertext');
end;

RavenIV 23. Aug 2005 15:34

Re: Insert fehler abfangen
 
stichwort: Exceptions.
hier in Delphi-Praxis gibt's gute Tutorials zu vielen Themen.

gruessle

freak4fun 23. Aug 2005 15:39

Re: Insert fehler abfangen
 
Zitat:

Zitat von Bernhard Geyer
Delphi-Quellcode:
try
  Insert-Anweisung
except
  ShowMessage('Mein Fehlertext');
end;

Bei dieser Lösung ist aber nicht immer der Unique schuld. Es kann auch zum Beispiel keine Verbindung zur Datenbank geben.

MfG
freak

dfried 23. Aug 2005 15:57

Re: Insert fehler abfangen
 
Na, dann musst due halt im Exception-Handler die Exception noch etwas genauer untersuchen und dann eine dem "Fehler" entsprechende Fehlermeldung liefern.
Entweder ist das über die Exception-Klasse möglich oder zur Not halt über den Text der als Message kommt.

Wie sieht denn die genaue Fehlermeldung aus die du in dem Fall bekommst?

Gruß
Daniel

Lilo 30. Aug 2005 14:28

Re: Insert fehler abfangen
 
jo soweit war ich auch schon ^^ das problem ist das ich die fehlermeldung vom access unterdrücken möchte denn die kommt ja auch wenn ich den execute-befehl zwischen try except hänge...

also

>>schreiben in datenbank
>>Fehler festgestellt
>>Fehlermeldung der Datenbank -----> und genau diesen schritt will ich vorher abfangen

geht das irgendwie?
oder sollte ich das lieber über ne abfrage vorher testen? ist vom aufwand her nicht so großartig aber doch irgendwo ineffektiv...

gruß lilo

Sharky 30. Aug 2005 14:55

Re: Insert fehler abfangen
 
Zitat:

Zitat von Lilo
... kommt ja auch wenn ich den execute-befehl zwischen try except hänge...

Warum kommt die denn? Oder solltest Du vergessen haben in der IDE abzuschalten das Laufzeitfehler angezeigt werden? ;-)
(in D7 -> Tools - Debugger Optionenen - Integrierte Fehlersuche).

Aber mal ne ganz andere Frage:
Was für ein Feld ist denn in deiner Tabelle mit einem Unique-Index verbunden das es dem User trotzdem erlaubt einen Wert für dieses Feld anzugeben?

Lilo 1. Sep 2005 11:56

Re: Insert fehler abfangen
 
ahso hm naja wenn man das net weiss kommt man nicht sehr weit ^^

zu deiner frage ... das feld ist eine kennung an der ein gewisses projekt eindeutig identifiziert werden soll... net mehr und net weniger ^^ aber durch deinen tip funzt es ez einwandfrei ... danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz