Problème d'exécution requête SQL en VBS
Bonjour à tous,
Je viens solliciter votre aide car je galère depuis quelques jours sur un script VBS.
En effet, j'ai script VBS qui exécute un fichier .SQL. Mon script VBS est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 'récupération de la requete dans le fichier requete
dim filesys, text, readfile, PosteDistant
set filesys = CreateObject("Scripting.FileSystemObject")
set readfile = filesys.OpenTextFile(".\scriptsSQL\requete.sql", 1, false)
strSQL = readfile.ReadAll
Dim myStream, myConnection, myCommand, adoRec, servername _
, databasename, user, password, mystring, laststamp, maxage
Set myStream = CreateObject("ADODB.Stream")
Set myConnection = CreateObject("ADODB.Connection")
Set myCommand = CreateObject("ADODB.Command")
myConnection.Open "Driver={SQL Server};Server=D043FAVREJ\sqlexpress;Database=AGILSTORE;Uid=dom\user;Pwd=password;Trusted_Connection=yes"
set myCommand.ActiveConnection=myConnection
myCommand.CommandText=strSQL
myCommand.Execute() |
Mon fichier requete.sql contient la requête suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| use master
declare @nomuser varchar(20)
declare @nomdb varchar(20)
declare @pwduser varchar(20)
/* NOM DE LA BASE DE DONNEES */
SET @nomdb='AGILStore'
PRINT 'CREATION DE LA LISTE DES UTILISATEURS AGIL'
/* AJOUT des utilisateurs à supprimer */
CREATE TABLE #useragil ( usernameagil varchar(20),pwdnameagil varchar(20))
insert #useragil(usernameagil,pwdnameagil) values ('agilstore','user1')
insert #useragil(usernameagil,pwdnameagil) values ('agilpos','user2')
/***********************/
/* CREATION DES LOGINS */
/***********************/
PRINT ''
PRINT '************************************************'
PRINT 'CREATION DES LOGINS'
PRINT ''
DECLARE createuser_cursor CURSOR
FOR SELECT usernameagil,pwdnameagil FROM #useragil
OPEN createuser_cursor FETCH
NEXT FROM createuser_cursor into @nomuser,@pwduser
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '************************************************'
PRINT '** CREATION DE L UTILISATEUR : ' + @nomuser
exec ('CREATE LOGIN ' + @nomuser +' WITH PASSWORD = ''' + @pwduser + ''',DEFAULT_LANGUAGE=French, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;')
PRINT ''
PRINT '- Affectation de la base de donnees par defaut'
exec ('ALTER LOGIN ' + @nomuser +' WITH DEFAULT_DATABASE = ' + @nomdb + ';')
PRINT '- CREATION du user de base de donnees'
EXEC ('USE ' + @nomdb + ';CREATE USER ' + @nomuser + ' FOR LOGIN ' + @nomuser + ';')
PRINT '- Affectation du schema par default'
EXEC ('USE ' + @nomdb + ';ALTER USER ' + @nomuser + ' WITH DEFAULT_SCHEMA = dbo;')
PRINT '- AJOUT du role sur la base de donnees'
EXEC ('USE ' + @nomdb + '; EXEC sp_addrolemember ''db_owner'', ''' + @nomuser + ''';')
PRINT '************************************************'
FETCH NEXT FROM createuser_cursor INTO @nomuser,@pwduser
END
CLOSE createuser_cursor
DEALLOCATE createuser_cursor
GO
DROP TABLE #useragil |
Mon problème est le suivant. Lorsque j'exécute mon script SQL depuis la console SQL Epress, celui-ci se déroule correctement. Cependant, quand je le l'exécute depuis mon script VBS, j'ai un message d'erreur "Syntaxe incorrecte ver 'createuser_cursor" code 80040E14.
Si quelqu'un a une idée sur mon problème ?
Je vous remercie tous par avance.