Récupérer une valeur de retour en sortie d'un EXEC
3 réponses
WonderMan
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300)
DECLARE @reponse as int
SET @sSql = '['
SET @sSql = @sSql + @SystemName
SET @sSql = @sSql + '].'
SET @sSql = @sSql + @CatalogName
SET @sSql = @sSql + '.dbo.MAFONCTION '
SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10))
SET @sSql = @sSql + ','
SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne
un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la
fonction devrait retourner 32.
Il semble donc que la valeur renvoyée par MAFONCTION reste à
l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans
@reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée
par MAFONCTION ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Steph
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300)
DECLARE @reponse as int
SET @sSql = '['
SET @sSql = @sSql + @SystemName
SET @sSql = @sSql + '].'
SET @sSql = @sSql + @CatalogName
SET @sSql = @sSql + '.dbo.MAFONCTION '
SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10))
SET @sSql = @sSql + ','
SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne
un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la
fonction devrait retourner 32.
Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur
du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que
la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée
par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné
par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql]
@SQL varchar(4000) = '',
@reponse int OUTPUT
AS
BEGIN
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
WonderMan
Steph avait soumis l'idée :
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne pas encore très bien. Je persévère dans mes recherches ! :-)
Steph avait soumis l'idée :
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300)
DECLARE @reponse as int
SET @sSql = '['
SET @sSql = @sSql + @SystemName
SET @sSql = @sSql + '].'
SET @sSql = @sSql + @CatalogName
SET @sSql = @sSql + '.dbo.MAFONCTION '
SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10))
SET @sSql = @sSql + ','
SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un
entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la
fonction devrait retourner 32.
Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du
contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la
valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par
MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par
ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql]
@SQL varchar(4000) = '',
@reponse int OUTPUT
AS
BEGIN
ton code
SET @reponse = ?? @@ROWCOUNT ??
END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne
pas encore très bien. Je persévère dans mes recherches ! :-)
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne pas encore très bien. Je persévère dans mes recherches ! :-)
Test recherche
Bonjour, Essaie cela DECLARE @sSql as nvarchar(300) DECLARE @reponse as int Declare @l_ParmDefinition varchar (100)
Set @reponse = 0
SET @sSql = 'Select @reponse = [' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
Ta variable devrait contenir ta valeur Cordialement Stéphane
"WonderMan" a écrit dans le message de news:
Steph avait soumis l'idée :
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne pas encore très bien. Je persévère dans mes recherches ! :-)
Bonjour,
Essaie cela
DECLARE @sSql as nvarchar(300)
DECLARE @reponse as int
Declare @l_ParmDefinition varchar (100)
Set @reponse = 0
SET @sSql = 'Select @reponse = ['
SET @sSql = @sSql + @SystemName
SET @sSql = @sSql + '].'
SET @sSql = @sSql + @CatalogName
SET @sSql = @sSql + '.dbo.MAFONCTION '
SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10))
SET @sSql = @sSql + ','
SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
Ta variable devrait contenir ta valeur
Cordialement
Stéphane
"WonderMan" <none@none.com> a écrit dans le message de news:
mn.342d7d85ad0248a1.88081@none.com...
Steph avait soumis l'idée :
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300)
DECLARE @reponse as int
SET @sSql = '['
SET @sSql = @sSql + @SystemName
SET @sSql = @sSql + '].'
SET @sSql = @sSql + @CatalogName
SET @sSql = @sSql + '.dbo.MAFONCTION '
SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10))
SET @sSql = @sSql + ','
SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne
un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la
fonction devrait retourner 32.
Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur
du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que
la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée
par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné
par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql]
@SQL varchar(4000) = '',
@reponse int OUTPUT
AS
BEGIN
ton code
SET @reponse = ?? @@ROWCOUNT ??
END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne
pas encore très bien. Je persévère dans mes recherches ! :-)
Ta variable devrait contenir ta valeur Cordialement Stéphane
"WonderMan" a écrit dans le message de news:
Steph avait soumis l'idée :
WonderMan wrote:
Bonjour,
J'appelle une fonction de la manière suivante :
DECLARE @sSql as nvarchar(300) DECLARE @reponse as int
SET @sSql = '[' SET @sSql = @sSql + @SystemName SET @sSql = @sSql + '].' SET @sSql = @sSql + @CatalogName SET @sSql = @sSql + '.dbo.MAFONCTION ' SET @sSql = @sSql + CAST(@arg1 as VARCHAR(10)) SET @sSql = @sSql + ',' SET @sSql = @sSql + CAST(@arg2 as VARCHAR(10))
exec @reponse = sp_executesql @sSql
(MAFONCTION est une fonction située sur un autrre serveur, qui retourne un entier. Son fonctionnement a été testé).
Le problème est que la valeur de @reponse est toujours 0, alors que la fonction devrait retourner 32. Il semble donc que la valeur renvoyée par MAFONCTION reste à l'intérieur du contexte d'exécution de EXEC, et que je ne récupère dans @reponse que la valeur de retour de EXEC.
Alors comment puis je récupérer en sortie de EXEC la valeur retournée par MAFONCTION ?
Merci de vos conseils.
en fait il te faut passer une variable qui sera initialiser et retourné par ta fonction :
sp_executesql @sSql, @reponse
et dans ta fonction :
ALTER PROCEDURE [dbo].[executesql] @SQL varchar(4000) = '', @reponse int OUTPUT AS BEGIN
ton code SET @reponse = ?? @@ROWCOUNT ?? END
Merci pour la réponse. J'ai essayé cette solution mais ça ne fonctionne pas encore très bien. Je persévère dans mes recherches ! :-)