Hello,
Voilà, je ne sais pas si je vais vers la bonne direction alors je vais être assez complet.
Dans un vbscript j'ai donc une connexion ADO (ADODB.Connection) que j'utilisais jusqu'ici avec la méthode Execute pour tapper ma BDD en SQL.
Problème : certaines erreurs SQL ne sont pas remontées dans l'objet vbscript "err" ni dans la collection ADO cn.errors.
Donc je suis tombé sur un autre objet ADO : Command qui semble-t-il permet de passer des paramètres de, et vers SQL.
Mais je n'arrive pas à comprendre comment ça marche...
voici mon code :
Partie SQL j'ai essayé :
Code VBS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 set cmddb = WScript.CreateObject("ADODB.Command") cmddb.ActiveConnection = cndb cmddb.CommandType = 1 'adCmdText pour une requête SQL simple cmddb.CommandText = SQLtext 'voir le code SQL plus loin cmddb.Parameters.Append cmddb.CreateParameter("@toto", 20, 4) '20 pour adBigInt (mon paramètre sera un entier) 4 pour adParamReturnValue (je veux remonter une info de SQL vers VBS) set result = cmdsrvstl.Execute for each objParam in cmddb.Parameters wscript.echo objParam next
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part RETURN 12
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 12 as totoMais à chaque fois mon "wscript.echo objParam" me renvoie un un string vide...
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 declare @toto as integer set @toto = 12
Comment spécifier au code SQL de renvoyer quelque chose dans mon paramètre "toto" ?
De plus, si mon code SQL contient plus de 2 opérations, mon recordset de retour n'est pas créé.
(Par exemple si je fais un UPDATE puis un SELECT dans le même ".Execute", le résultat du SELECT n'arrive pas dans mon recordset "result")
Merci d'avance pour votre aide
** Ce message est aussi posté dans la catégorie SQL Server **
Partager