Lorsque vous appelez cette procédure MS-SQL stocké:Problème appel d'une procédure MS SQL stockée avec paramètre OUT en utilisant Groovy
CREATE PROCEDURE [dbo].[AddUser]
@networkID varchar(512),
@id uniqueidentifier OUTPUT
....
Avec ce code Groovy:
networkAliasID = 'aschoewe_test'
sql.call("{call AddUser(?, ${Sql.VARCHAR}) }", [networkAliasID]) { s ->
println "userID: ${s}"
}
Je reçois cette erreur:
java.sql.SQLException: Incorrect syntax near '.'.
C'est parce qu'il n'aime pas le 'Sql.' une partie du code (même si tous les exemples que j'ai vus le font comme ça). Si je change le code à:
networkAliasID = 'aschoewe_test'
String userID = null
sql.call("{call AddUser(?, ?) }", [networkAliasID, userID]) { s ->
println "userID: ${s}"
println "userID: ${userID}"
}
Le code s'exécute, mais je ne peux pas obtenir le nouvel ID utilisateur. Les deux 's' et 'userID' sont null lorsque le code a fini d'exécuter. Est-ce que je fais quelque chose qui ne va pas systématiquement? Est-ce un problème avec MSSQL? Est-ce un problème avec le type de retour étant UNIQUEIDENTIFIER? J'utilise les pilotes JTDS et la documentation montre que c'est le type JDBC equiavalent qui est VARCHAR.
Toute aide est appréciée,
Andrew