Bonjour à tous,
Le problème est un peu dur à expliquer donc je vais essayer de faire simple mais n'hésitez pas à poser des questions.
J'ai une applicatioN DotNet qui utilise un Framework pour attaquer SQL Server comme base de données. L'application met en cache les paramètres de procédure stockées après les avoir récupérés 1 première fois.
J'ai une procédure stocker SelectUser (on va la nommer comme ceci) qui avait avant 3 paramètres mais qui a été modifié pour en avoir 4. bien évidemment l'application a été modifiée en conséquence.
Lors de l'exécution de l'appli, une erreur "Too many arguments" est levée sur la procédure stockée SelectUser, ni une ni 2 je vérifie les paramètres.
J'execute la procédure stockée avec 4 paramètres ca marche, je fais la même chose dans l'application en mettant en dur les 4 paramètres ca marche, et quand je vérifie le tableau de paramètre récupéré automatiquement j'ai bien 4 paramètres.
Je ne savais pas trop d'ou ca pouvait venir et comment corriger, par contre quand on drop la procédure stockée elle met un message d'erreur "ne peut pas droper quand l'objet est fermé" bizarre ...
J'ai beau recréer la proc stock , rebooter le serveur, vider le cache de l'application, redémarrer IIS, redémarre Sql Server, killer le processus ASPNet, rien ne fait il y a un problème au niveau des paramètres.
Ce matin j'ai fais un copié collé de la proc stock mais je l'ai créée sous le nom de SelectUser2. LA PROCEDURE STOCKEE EST IDENTIQUE (je dis ca au cas ou il y a des personnes qui viendraient me dire pour la énième fois que c'est surement pas la même ) j'ai juste copié collé la même en faisant un rechercher remplacer SelectUser par SelectUser2.
J'ai modifié l'appel à la proc stock dans l'application, j'ai livré ... et ca marche !!!!!
je refais marche en arrière je recré la procédure en SelectUser et je remodifie l'application, BAM toujours le même problème.
Apparemment SQL Server s'est emmelé les pinceaux sur le serveur, il a peut etre 2 fois la même proc stock dans son registre mais avec le même nom.
Ma question est simple : Quelqu'un pourrait il m'expliquer, quelqu'un aurait il une explication logique, et voir même mieux, quelqu'un a t il une solution à ce problème ?
Je vous remercie par avance pour votre aide
Vincent.
Partager