|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : janvier 2008 Messages : 54 ![]() |
Bonjour,
Une procédure stockée devrait me retourner une valeur de type BigInt que je traite par la suite dans un prgm .Net. Hors, un message d'erreur apparait : Arithmetic overflow error converting expression to data type int. D'après ce que j'ai compris, le type "natif" de retour de sql est int mais est-ce que il y a un moyen de "forcer" en BigInt ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 937 ![]() |
Non ! Cette valeur est le code de retour système. Ne JAMAIS l'utiliser sinon vous masqueriez les erreurs en retour !
Pour passer une valeur en output au niveau d'une proc, il faut définir un paramètre output. Lisez le tuto que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...nsactsql/#L4.2 A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 | |||
|
Futur Membre du Club
![]() Inscription : janvier 2008 Messages : 54 ![]() |
Citation:
si je comprends bien en lisant votre article, il ne faut non plus pas faire : Code :
|
|||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 937 ![]() |
OUI !
Vous devez déclarer une valeur OUTPUT dans la liste des paramètres.... A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 | |
|
Futur Membre du Club
![]() Inscription : janvier 2008 Messages : 54 ![]() |
Citation:
Merci pour toutes ces précisions. J'aurai qq programmes à corriger... bon week end |
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 5 354 ![]() |
Citation:
Ceci dit, comme le signifie SQLPro, un proc stoc n'est pas une fonction, et son code de retour est "incident" à la procédure. Et dans le cas proc stoc d'une ne retournant pas de données mais retournant un code de retour , il n'y pas besoin de paramètres en sortie, le paramètre de retour sera avantageusement récupérer dans le retour de la méthode ExecuteScalar. En revanche si la PS retourne des données, on va l'appeler avec un ExecuteReader, et là il faudra préciser si elle retourne un code de sortie un paramètre en ReturnValue. Si elle a des paramèetre décrit OUTPUT, il faudra utiliser des paramères avec Output dans la propriétés Direction. Bien sur tous les cas peuvent se combiner( PS retournant des données, plus des params OUTPUT, plus code de retour).
__________________
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça... Une réponse vous a aidé ? utiliser le bouton "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel |
|
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : janvier 2008 Messages : 54 ![]() |
J'ai pris un raccourci en disant "état" du server mais je pensais resultat de la proc. stockée. :-)
Par contre, je trouve qd-même un peu bizzare que SQL server permette de pouvoir faire un RETURN d'une valeur INT dans le code sans qu'aucun paramètre de type Output aye au préalable été déclaré [?!] . ou alors j'ai rien compris :-/ C'est dangereux pour des gars comme moi qui manipulons des données sans vraiment connaitre de quoi il s'agit :-) ... mais je ne demande qu'à m'améliorer ! En tout cas merci à vous 2 pour toutes ces précisions. |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Patrick LAMBINRetraité Inscription : décembre 2010 Messages : 23 ![]() |
D'apès la documentation en ligne, le code retour d'une procédure stockée est
"retourner une valeur d'état à une procédure ou à un traitement appelant pour indiquer une réussite ou un échec (et la raison de l'échec)." Le code retour en réalité n'est utilisé que pour les traitements batch ( en lots ) . Il permet de faire des branchements ou éviter de continuer le travail si une erreur est identifiée. Je pense que seules les sociétés qui utilisent ce genre de traitement connaissent l'utilité de ce code retour et s'en servent encore. Bonne journée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com