Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

ExecuteScript: wie komme ich an das Ergebnis?

SQL Express von Boris Borzic

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

ExecuteScript: wie komme ich an das Ergebnis?

Beitrag von satmax » Mo, 13. Jul 2015 11:31

Mit folgender simpler Abfrage erhalte ich im Management Studio die genauen Größen der DB, Index usw. ermitteln. Zurück kommen 2 Abfrageergebnisse mit je 1 Zeile.

Code: Alles auswählen

USE myDb
EXEC sp_spaceused

Ausführen als Script geht ja noch einfach:

Code: Alles auswählen

TEXT INTO cScript WRAP
USE myDb
EXEC sp_spaceused
ENDTEXT

oStmt:=SQLStatement():New(nil, oConn)
oStmt:ExecuteScript(cScript)
Aber wie komme ich nun an das Ergebnis dieser Zeilen? Cursor habe ich ja keinen.
Gruß
Markus

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: ExecuteScript: wie komme ich an das Ergebnis?

Beitrag von georg » Mo, 13. Jul 2015 13:10

Hallo, Markus -


grundsätzlich (zumindest laut Dokumentation) geht das :ExecuteScript() davon aus, dass keine Ergebnisse zurückgeliefert werden.

Alternativ könnte ich mir vorstellen, das Ergebnis innerhalb des Scriptes in eine temporäre Tabelle zu schreiben und diese dann via SQLSelect() auszulesen. Mangels MS SQL (ich vermute mal, dass Du selbiges einsetzt) kann ich das aber leider nicht ausprobieren.
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: ExecuteScript: wie komme ich an das Ergebnis?

Beitrag von satmax » Mo, 13. Jul 2015 15:42

georg hat geschrieben:Hallo, Markus -


grundsätzlich (zumindest laut Dokumentation) geht das :ExecuteScript() davon aus, dass keine Ergebnisse zurückgeliefert werden.

Alternativ könnte ich mir vorstellen, das Ergebnis innerhalb des Scriptes in eine temporäre Tabelle zu schreiben und diese dann via SQLSelect() auszulesen. Mangels MS SQL (ich vermute mal, dass Du selbiges einsetzt) kann ich das aber leider nicht ausprobieren.
Hallo Georg,

genau so habe ich es nun gelöst.
Gruß
Markus

Antworten