J'exécute des requêtes sql en utilisant OSQL
via la configuration d'inno. J'utilise le code suivant pour exécuter OSQL
. Ceci est juste à titre d'exempleL'exécution de SQL Script à l'aide de OSQL ne retourne pas le code résultat
SQLQuery:= '"EXEC sp_addserver ''PCNAME'';"';
Param:= '-S(local) -Usa -Psa -Q ' + SQLQuery;
Exec('osql.exe', Param, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
Cela fonctionne très bien. Le problème est ResultCode
la valeur est toujours 0. Même si la requête n'est pas exécutée. Par exemple, si je tente même requête comme ci-dessous où je passe un nom de procédure stockée invalide le ResultCode
est toujours 0.
SQLQuery:= '"EXEC sp_invalidname ''PCNAME'';"';
Param:= '-S(local) -Usa -Psa -Q ' + SQLQuery;
Exec('osql.exe', Param, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
Pourquoi ne pas me retourner un code approprié. Si je lance la deuxième requête en studio de gestion, je reçois une erreur comme celle
Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'sp_invalidname'
retour ici code est 2812
. Pourquoi je ne reçois pas ça quand je le passe à Inno. Que dois-je faire pour obtenir ce code d'erreur dans inno?
Ah, le '-Q' doit être suivi de la requête. J'ai mis le paramètre au mauvais endroit. – TLama
Oui. Ma faute ne l'a pas remarqué avant. Merci quand même. – Newbee
De rien! – TLama