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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager