AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken StoredProcedure über ABO aufrufen ohne das Programm blockiert
Thema durchsuchen
Ansicht
Themen-Optionen

StoredProcedure über ABO aufrufen ohne das Programm blockiert

Ein Thema von BlueStarHH · begonnen am 26. Jul 2018 · letzter Beitrag vom 26. Jul 2018
Antwort Antwort
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
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: StoredProcedure über ABO aufrufen ohne das Programm blockiert

  Alt 26. Jul 2018, 11:02
Moin...

Da hilft nur die SP in einen Thread auszulagern.
  Mit Zitat antworten Zitat
BlueStarHH

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

AW: StoredProcedure über ABO aufrufen ohne das Programm blockiert

  Alt 26. Jul 2018, 11:05
Moin...

Da hilft nur die SP in einen Thread auszulagern.
Aber wozu ist eoAsyncExecute denn da?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: StoredProcedure über ABO aufrufen ohne das Programm blockiert

  Alt 26. Jul 2018, 11:06
Du könntest es vielleicht in einem eigenen Thread aufrufen.

Weiß nicht, was MSSQL so kann, aber es lässt sich mindestens über den OS Scheduler ansteueren, ggF. hat es eigene Job Routinen wie Oracle.
Dort machen wir sowas je nach Bedarf auch als Job. Man startet dann per SP nicht die Nutzlast Procedure, sondern halt einen Job, der das macht. Der Aufruf kommt sofort zurück.

Vorteil ist, man erhält Logs und Monitoring Möglichkeiten geschenkt. Das ermöglicht wiederum eine nebenläufige Fortschrittsanzeige oder Benachrichtigung bei Ende, Erfolg/Fehlerkontrolel oder oder

Leider kann ich bei MSSQL nur vermuten, dass sowas ginge. Mindestens über den Taskscheduler sollte es aber möglich sein. Ggf hat der auch ein Interface "nach innen" zu MSSQL.
Gruß, Jo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: StoredProcedure über ABO aufrufen ohne das Programm blockiert

  Alt 26. Jul 2018, 11:31
Hallo,
viell. hilft das?

https://www.experts-exchange.com/que...cute-mode.html

Ganz unten wird eine Query empfohlen mit dem genannten Parameter und Open.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:16 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