Question

Dans le cadre de nos procédures de contrôle de révision de base de données (et auto-installation), nous devons être en mesure sqlcmd.exe d'exécution sur différents fichiers .sql à partir d'une page ASP. Le code que je utilise pour ce faire est:

Dim cmd : cmd = "sqlcmd -S " & DATABASE_SERVER & " -U " & DATABASE_UID & " -P " & DATABASE_PWD & " -d " & DATABASE_NAME & " -i """ & scriptPath & """ -b"
Dim wshShell : Set wshShell = Server.CreateObject("WScript.Shell")
Dim return : return = wshShell.Run(cmd, 0, True)

J'ai le code de travail sur ma machine de développement (sous XP), mais maintenant que je l'ai déployé à notre serveur Windows 2003, il a des problèmes. Le problème étant que la valeur de retour est toujours 1. Cela se produit également si j'essaie de le faire pour exécuter un fichier de commandes ou tout ce que je peux penser (si je change la valeur de cmd dans un fichier non-existant, il bombes sur comme je pense)

Je l'ai essayé d'ajouter I_USR et I_WAM d'avoir des autorisations d'exécution sur les deux sqlcmd.exe et cmd.exe, mais il retourne toujours 1. Si j'ouvre une invite de commande au niveau du serveur et de faire un « runas / user: servername \ i_usr sqlcmd.exe » qui fonctionne très bien, mais en cours d'exécution à partir de la page ASP ne fonctionne toujours pas.

En outre, lors de l'exécution des scripts Sql tout manuellement fonctionne bien si avec eux il n'y a pas de problème.

Y at-il des paramètres de sécurité sur le serveur que je l'ai oublié de changer dans IIS ou Windows en général pour le faire fonctionner?

Merci d'avance Internet.

Était-ce utile?

La solution

Le problème a été résolu en modifiant la première ligne à:

Dim cmd : cmd = "%COMSPEC% /C sqlcmd -S " & DATABASE_SERVER & " -U " & DATABASE_UID & " -P " & DATABASE_PWD & " -d " & DATABASE_NAME & " -i """ & scriptPath & """ -b"

Autres conseils

Vous devez modifier

cmd = "sqlcmd -S ...

à

cmd = "\windows\sqlcmd.exe -S ..

(ou quel que soit le chemin complet Sqlcmd.exe est sans espaces)

Juste pour écarter les problèmes de chemin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top