Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

StoredProcedure über ABO aufrufen ohne das Programm blockiert

  Alt 26. Jul 2018, 11:00
Datenbank: MSSQL • Version: 2012 • Zugriff über: ADO
Hallo,

ich nutze die ADO-Komponenten aus dem Lieferumgang von Delphi. Ich möchte per Button-Klick eine StoredProcedure aufrufen. Diese läuft mehrere Minuten. Daher soll *sofort* nach dem Klick ein Weiterabreiben im Programm möglich sein. Das Programm soll nicht blockieren. Genau das tut es bei Aufruf von ADOsp.ExecProc jedoch. Jetzt habe ich ADOsp.ExecuteOptions.eoAsyncExecute auf true gesetzt, damit es nicht mehr blockiert. Dabei gibt es jedoch folgende Exception:
Code:
Im Projekt xxxxx.exe ist eine Exception der Klasse EOleException mit der Meldung 'Der Vorgang kann nicht bearbeitet werden, während ein asynchroner Befehl ausgeführt wird' aufgetreten.
Delphi-Quellcode:
ADOsp: TADOStoredProcedure
...
ADOsp.ProcedureName := 'MyTestProc';

ADOsp.Parameters.Clear;
ADOsp.Parameters.AddParameter.Value := 123;
ADOsp.Parameters.AddParameter.Value := 'test';

ADOsp.ExecProc; //<-- Exception hier
Wie bekomme ich das gelöst? Vielen Dank im Voraus!
  Mit Zitat antworten Zitat