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