Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: Seltsames Verhalten von ADO bei SET NOCOUNT ON

  Alt 10. Okt 2005, 23:35
Hi,

du kannst Exceptions aus dem SQL-Code mit RAISEERROR auslösen. Diese kommen bei ADO auch mit SET ROWCOUNT ON an...
Voraussetzung dafür ist, das du die richtige Komponente nimmst.
Wenn du eine TAdoStoredProc anstatt der TAdoConnection zum Ausführen der SP verwendest, dann bekommt diese das Beenden der SP mit.
Zum einen liest die TAdoStoredProc den ReturnCode der SP aus (Parameters[0]), und zum Anderen würde MeineAdoStoredProc.Execute einen EDatabaseError auslösen, falls du in der SP eine Exception mit RAISEERROR erzeugst.

Da du die TAdoStoredProc ohnehin individuell mit dem ProcedureName und ggf. ein paar Parametern füttern musst, kannst du auch den Timeout-Wert zum Ausführen dieser "Riesen-SP" individuell hochsetzen.



Ich bin ja auch ein wenig neugierig ...
Was machst deine SP 40-50 Sekunden lang mit dem armen SQL-Server ... ?

Arbeitest du in der SP einen Cursor ab, der Datensätze verändert, hinter denen dann noch Trigger hängen?

Falls es dich nicht stört, dann zeige uns mal etwas SQL-Code ...
Eventuell können wir das noch ein wenig optimieren ...



Schöne Grüße,
Jens
  Mit Zitat antworten Zitat