ISQL

28/04/2008 - 15:09 von Sven D. | Report spam
Hallo NG,

lange habt Ihr keine Fragen von mir gehabt. ;-)

Nun habe ich mal wieder was ganz besonderes.


Ich habe hier ein URALT-System, welches migriert wurde. Dabei werden
SQL-Statements per ISQL an den Datenbankserver übermittelt.
Diese Durchführung klappt auch soweit, wir auch alles in benutzerdefinierten
Dateien mitprotokolliert. Nur gibt der fertige SQL keine Rückmeldung an
sein aufrufendes Programm.

Also in etwa so:
- test.bat mit Call isql.exe blabla.sql
- blabla.sql macht alle updates etc. auf den SQL-Server
- danach sollte die test.bat weiterlaufen, tut sie aber nicht, da sie noch
glaubt, das der .sql noch aktiv ist, z.T. sieht man im EM das noch ein ISQL
aktiv ist

Was muss ich machen, damit sich der SQL-Aufruf ordnungsgemàss bei der
BAT-Datei zurückmeldet? Reicht es aus, wenn am Ende ein Return() steht?

Witzig ist ja auch, das ich mit demselben ACCOUNT wie im Automatikbetrieb
erfolgreich getestet habe, es dann Nachts aber nicht immer funktioniert.

Vielen Dank für die Ratschlàge.

Gruss
Sven
 

Lesen sie die antworten

#1 Elmar Boye
29/04/2008 - 09:33 | Warnen spam
Hallo Sven,
Sven D. schrieb:
Ich habe hier ein URALT-System, welches migriert wurde. Dabei werden
SQL-Statements per ISQL an den Datenbankserver übermittelt.
Diese Durchführung klappt auch soweit, wir auch alles in benutzerdefinierten
Dateien mitprotokolliert. Nur gibt der fertige SQL keine Rückmeldung an
sein aufrufendes Programm.

Also in etwa so:
- test.bat mit Call isql.exe blabla.sql



wie sehen die Aufrufparameter genau aus?
(BTW: Das Call ist überflüssig).

Wenn ihr den Aufruf über eine BAT/CMD Datei macht, so solltet ihr
isql durch osql.exe bzw. sqlcmd.exe ersetzen.
Diese Programme haben weitgehend die gleichen Aufrufparameter
nutzen aber im Gegensatz zu isql nicht mehr die DB Library
(sondern ODBC bzw. OleDb). Und sie unterstützen die neueren
Features, da die DB Library seit 7.0 nicht mehr erweitert wurde.

Was muss ich machen, damit sich der SQL-Aufruf ordnungsgemàss bei der
BAT-Datei zurückmeldet? Reicht es aus, wenn am Ende ein Return() steht?



Unter normalen Umstànden sollte sich isql beenden.
Sinnvoll kann es sein die Ausgabe via -o in eine Datei umzuleiten

Witzig ist ja auch, das ich mit demselben ACCOUNT wie im Automatikbetrieb
erfolgreich getestet habe, es dann Nachts aber nicht immer funktioniert.



Worüber wird der Aufruf ausgeführt?
Es besteht schon ein Unterschied ob eine interaktive Desktop Sitzung
verwendet wird, oder ob das z. B. über einen Auftrag im SQL Server
Agenten ausgeführt wird.

Gruß Elmar

Ähnliche fragen