2009-02-25 8 views
4

Im Rahmen unserer Prozeduren zur Datenbankversionskontrolle (und automatischen Installation) müssen wir sqlcmd.exe auf verschiedenen .sql-Dateien innerhalb einer ASP-Seite ausführen können. Der Code verwende ich dies zu tun ist:Wie kann ich sqlcmd.exe von einer ASP-Seite ausführen?

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) 

Ich habe den Code auf meiner Entwicklung Maschine arbeiten (mit XP), aber jetzt, dass ich es in unseren Windows 2003 Server bereitgestellt haben es Probleme. Das Problem ist, dass der Wert für die Rückgabe immer 1 ist. Das passiert auch, wenn ich versuche, eine Batch-Datei oder irgendetwas anderes zu erstellen, das mir einfällt (wenn ich den Wert für cmd in eine nicht existierende Datei ändere, bombadiert er wie ich es erwarte)

Ich habe versucht, I_USR und I_WAM hinzufügen, um Berechtigungen sowohl für sqlcmd.exe und cmd.exe ausführen, aber es gibt immer noch 1. Wenn ich eine Eingabeaufforderung auf dem Server öffnen und eine " runas/user: Servername \ i_usr sqlcmd.exe "das funktioniert gut, aber das Ausführen von der ASP-Seite funktioniert immer noch nicht.

Auch wenn die .SQL-Skripte manuell ausgeführt werden, läuft alles reibungslos, so dass es kein Problem mit ihnen gibt.

Gibt es irgendwelche Sicherheitseinstellungen auf dem Server, die ich vergessen habe, innerhalb von IIS oder Windows zu ändern, damit es funktioniert?

Vielen Dank im Voraus das Internet.

Antwort

2

Das Problem wurde durch Änderung löst die erste Zeile:

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

sollten Sie

ändern
cmd = "sqlcmd -S ... 

zu

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

(oder was auch immer der vollständige Pfad ohne Leerzeichen zu sqlcmd.exe ist)

Gerade Pfadprobleme auszuschließen.

Verwandte Themen