2009-02-25 6 views
4

Dans le cadre de nos procédures de contrôle de révision de base de données (et d'auto-installation), nous devons pouvoir exécuter sqlcmd.exe sur divers fichiers .sql à partir d'une page ASP. Le code que je utilise pour ce faire est la suivante:Comment puis-je lancer sqlcmd.exe à partir d'une page ASP?

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 est que la valeur de retour est toujours 1. Cela arrive aussi si j'essaie de l'obtenir pour exécuter un fichier de commandes ou tout autre élément auquel je peux penser (si je change la valeur de cmd pour un fichier non existant, il bombarde comme je m'attendais)

J'ai essayé d'ajouter I_USR et I_WAM pour avoir des permissions d'exécution sur sqlcmd.exe et cmd.exe mais il renvoie toujours 1. Si j'ouvre une invite de commande sur le serveur et fais un " runas/user: nom_serveur \ i_usr sqlcmd.exe "qui fonctionne correctement, mais l'exécution à partir de la page ASP ne fonctionne toujours pas.

De même, lors de l'exécution manuelle des scripts .sql, tout se passe bien, donc il n'y a pas de problème avec eux.

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

Merci d'avance l'internet.

Répondre

2

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" 
1

Vous devez changer

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.

Questions connexes