AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehlerbehandlung von Stored Procedures
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerbehandlung von Stored Procedures

Ein Thema von alzaimar · begonnen am 16. Nov 2007 · letzter Beitrag vom 28. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Fehlerbehandlung von Stored Procedures

  Alt 16. Nov 2007, 08:57
Datenbank: MSSQL • Version: 2000 • Zugriff über: ADO
Hi

Kleines Problem, wenig Zeit (deshalb müsst ihr ran )

Ich habe auf dem Papier eine Stored Procedure, die wird über ADO irgendwie aufgerufen. Diese SP übermittelt Daten an einen anderen Server (mit INSERT). Nun kann es sein, das der andere Server nicht erreichbar ist. Dann soll die SP die Daten lokal zwischenspeichern.

Die Tatsache, ob das der Server nicht erreichbar ist, ermittle ich einfach über die @@Error-Variable (wenn's knallt, dann lokal zwischenspeichern). Das sollte auch funktionieren.

Ich will nun aber nicht, das dieser (und nur dieser!) Fehler an ADO zurückgemeldet wird.

Frage: Kann man die Generierung der Fehlermeldung auf SQL-Seite ausschalten, sodaß ADO davon nix mitbekommt, also so ne Art 'Try...Except End', oder 'ON ERROR CONTINUE'?

Die Alternative wäre, die Daten immer zwischenzuspeichern, und dann über einen separaten Task (z.B. jede Minute) die lokalen Daten zu übermitteln, der Kunde würde aber lieber die direkte Übermittlung sehen (ja ja, wenn die Kunden nicht wären).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 07:29
Muss untergegangen sein (push).

Hat Jemand eine Idee?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
PaulJr

Registriert seit: 10. Feb 2007
Ort: Stuttgart
66 Beiträge
 
#3

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:08
Hallo Alzamir,

ich bezweifle, dass Du die (SQL) Fehlermeldung so einfach unterdrücken kannst.

Ich benutze ADO nicht aber die Mechanismen sollten überall die Gleichen sein: Darum, ich z.B. erkenne nicht nur solche Fehler in entsprechenden Ereignissen sondern (um diese zu unterdrücken) behandle diese auch…

Viele Grüße
PaulJr
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:39
Hau Paul,

ich bezweifle das auch, bin aber nicht allwissend. Ich habe gehofft, irgendeine obskure 'SET ERROR OFF' - Einstellung würde MSSQL das Maul stopfen. Ich befürchte, ich muss die Mittelschicht anfassen, was tödlich sein kann ('Never touch a running system').

Nun denn, Suizid als Hobby. Auch was neues.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:41
Strukturierte Fehlerbehandluung kennt der SQL Server 2000 nicht. Sorry. Das geht erst ab SQL Server 2005.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:45
Würde es nicht mehr Sinn machen, das Ganze in einer nativen XProc zu lösen?
TSQL ist doch für alles jenseits einem SELECT und einer if-Clause viel zu drecks-eklig.
Gerade die Fehlerbehandlung wird keiner außer dir kapieren können...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:48
Du kannst, wie du ja schon machst, über @@error den Fehler abfragen. Speichere den Wert in einer Zwischenvariablen und prüfe anschliessend über

SQL-Code:
if @myError <> 0 BEGIN
   goto ErrorHandler
END

-- Hier der normale Ablauf
Goto ExitProc

ErrorHandler:
Rollback Tran
return


ExitProc:
return
deinen Fehler.
Laut meinem Buch wird beim Fehler zum Label ErrorHandler gesprungen. Dort kannst du auf jeden Fall noch ein paar Aktionen durchführen. Ob der Return allerdings nun dennoch einen Fehler auf Clientseite auslöst, weiss ich nicht.

Hast du vielleicht eine Möglichkeit einen SQL Server der Version 2005 zu nutzen. Dort gibts ein neues Errorhandling über Try...catch Blöcke wie man sie von anderen Programmiersprachen her kennt. Da wird auf jeden Fall die Fehlermeldung beim Client unterbunden. Soll sie dennoch ausgelöst werden, reicht ein erneuter Raiserror im Catch-Block.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:49
Zitat von Elvis:
Gerade die Fehlerbehandlung wird keiner außer dir kapieren können...
Robert, du weisst aber schon dann man auch eigene Fehlermeldungen definieren kann... Sogar parametrisiert.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:52
Ich arbeite ausgiebig mit eigenen benutzerdefinierten Fehlermeldungen, das funktioniert wunderbar. Ich war/bin auf Version 2000 eingeschossen, sodaß der Hinweis auf den TRY-CATCH-Block der 2005er die Lösung meines Problemes darstellen könnte.

Ich glaub sogar, das Zielsystem ist ein 2005er, nur die Testumgebung (noch) eine alte Gurke.


Danke für den Hinweis!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Fehlerbehandlung von Stored Procedures

  Alt 19. Nov 2007, 09:54
Dann haste ja noch mal die letzte Ausfahrt erwischt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 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