Je cherche comment inclure dans une variable plusieurs données afin
d'extraire les enregistrements mentionnés par cette variable dans une
procédure stockée utilisée pour un développement sur Crystal Report.
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
Med Bouchenafa
Je ne sais pas si je comprend bien ce que tu recherches à faire Mais je dirais qu'il te suffit de concaténer tes données dans une variable de type varchar en les séparant par une virgule ou tout séparateur approprié Tu passeras cette variable en tant que paramètre à ta procédure et tu feras l'analyse à l'intérieur de ta procédure du contenu de ce paramètre -- Bien cordialement Med Bouchenafa
"Scandecor" wrote in message news:43a7ce2f$0$21749$
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin d'extraire les enregistrements mentionnés par cette variable dans une procédure stockée utilisée pour un développement sur Crystal Report.
Merci pour votre aide.
Cordialement.
Marc
Je ne sais pas si je comprend bien ce que tu recherches à faire
Mais je dirais qu'il te suffit de concaténer tes données dans une variable
de type varchar en les séparant par une virgule ou tout séparateur approprié
Tu passeras cette variable en tant que paramètre à ta procédure et tu feras
l'analyse à l'intérieur de ta procédure du contenu de ce paramètre
--
Bien cordialement
Med Bouchenafa
"Scandecor" <scandecor@free.fr> wrote in message
news:43a7ce2f$0$21749$626a14ce@news.free.fr...
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin
d'extraire les enregistrements mentionnés par cette variable dans une
procédure stockée utilisée pour un développement sur Crystal Report.
Je ne sais pas si je comprend bien ce que tu recherches à faire Mais je dirais qu'il te suffit de concaténer tes données dans une variable de type varchar en les séparant par une virgule ou tout séparateur approprié Tu passeras cette variable en tant que paramètre à ta procédure et tu feras l'analyse à l'intérieur de ta procédure du contenu de ce paramètre -- Bien cordialement Med Bouchenafa
"Scandecor" wrote in message news:43a7ce2f$0$21749$
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin d'extraire les enregistrements mentionnés par cette variable dans une procédure stockée utilisée pour un développement sur Crystal Report.
Merci pour votre aide.
Cordialement.
Marc
Philippe T [MS]
Bonjour,
Tu peux utiliser pour spliter ta chaine sur un caractère la fonction suivante :
</StoredProcedure> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ CREATE FUNCTION cf_GetSplit ( @sText nvarchar(4000), @sDelim nvarchar(1) = ' ', @occ int ) RETURNS nvarchar(1000) AS BEGIN DECLARE @Val_Next_1 int DECLARE @Val_Next_2 int DECLARE @bcontinue bit DECLARE @LenMax int DECLARE @sTemp nvarchar(4000)
SET @LenMax = LEN(@sText)
IF @occ = 1 OR @occ = 0 BEGIN SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) IF @Val_Next_1 <> 0 BEGIN SET @sText = SUBSTRING(@sText, 1, @Val_Next_1 - 1) END END ELSE BEGIN SET @bcontinue = 1 WHILE @bcontinue = 1 BEGIN SET @occ = @occ - 1
SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1, @LenMax))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 100)
--Exit the WHILE loop. IF @occ = 1 BEGIN IF @Val_Next_2 <> 0 BEGIN SET @sText = SUBSTRING(@sText, 1, @Val_Next_2 - 1) END SET @bcontinue = 0 END END END
-- Insert all other occurence WHILE ( 1 = 1 ) BEGIN SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1, 4000))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 4000)
IF @Val_Next_2 <> 0 BEGIN SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER ) VALUES( SUBSTRING(@sText, 1, @Val_Next_2 - 1), @OccurenceNumber ) END ELSE BEGIN IF @sText <> '' BEGIN SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER ) VALUES( @sText, @OccurenceNumber ) END BREAK END END
RETURN END
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Scandecor" wrote in message news:43a7ce2f$0$21749$
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin d'extraire les enregistrements mentionnés par cette variable dans une procédure stockée utilisée pour un développement sur Crystal Report.
Merci pour votre aide.
Cordialement.
Marc
Bonjour,
Tu peux utiliser pour spliter ta chaine sur un caractère la fonction
suivante :
</StoredProcedure>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
CREATE FUNCTION cf_GetSplit
(
@sText nvarchar(4000),
@sDelim nvarchar(1) = ' ',
@occ int
)
RETURNS nvarchar(1000)
AS
BEGIN
DECLARE @Val_Next_1 int
DECLARE @Val_Next_2 int
DECLARE @bcontinue bit
DECLARE @LenMax int
DECLARE @sTemp nvarchar(4000)
SET @LenMax = LEN(@sText)
IF @occ = 1 OR @occ = 0
BEGIN
SET @Val_Next_1 = CHARINDEX(@sDelim, @sText)
IF @Val_Next_1 <> 0
BEGIN
SET @sText = SUBSTRING(@sText, 1, @Val_Next_1 - 1)
END
END
ELSE
BEGIN
SET @bcontinue = 1
WHILE @bcontinue = 1
BEGIN
SET @occ = @occ - 1
SET @Val_Next_1 = CHARINDEX(@sDelim, @sText)
SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1,
@LenMax))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 100)
--Exit the WHILE loop.
IF @occ = 1
BEGIN
IF @Val_Next_2 <> 0
BEGIN
SET @sText = SUBSTRING(@sText, 1, @Val_Next_2 - 1)
END
SET @bcontinue = 0
END
END
END
-- Insert all other occurence
WHILE ( 1 = 1 )
BEGIN
SET @Val_Next_1 = CHARINDEX(@sDelim, @sText)
SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1,
4000))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 4000)
IF @Val_Next_2 <> 0
BEGIN
SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER )
VALUES( SUBSTRING(@sText, 1, @Val_Next_2 - 1), @OccurenceNumber )
END
ELSE
BEGIN
IF @sText <> ''
BEGIN
SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER )
VALUES( @sText, @OccurenceNumber )
END
BREAK
END
END
RETURN
END
----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France
"Scandecor" <scandecor@free.fr> wrote in message
news:43a7ce2f$0$21749$626a14ce@news.free.fr...
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin
d'extraire les enregistrements mentionnés par cette variable dans une
procédure stockée utilisée pour un développement sur Crystal Report.
</StoredProcedure> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ CREATE FUNCTION cf_GetSplit ( @sText nvarchar(4000), @sDelim nvarchar(1) = ' ', @occ int ) RETURNS nvarchar(1000) AS BEGIN DECLARE @Val_Next_1 int DECLARE @Val_Next_2 int DECLARE @bcontinue bit DECLARE @LenMax int DECLARE @sTemp nvarchar(4000)
SET @LenMax = LEN(@sText)
IF @occ = 1 OR @occ = 0 BEGIN SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) IF @Val_Next_1 <> 0 BEGIN SET @sText = SUBSTRING(@sText, 1, @Val_Next_1 - 1) END END ELSE BEGIN SET @bcontinue = 1 WHILE @bcontinue = 1 BEGIN SET @occ = @occ - 1
SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1, @LenMax))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 100)
--Exit the WHILE loop. IF @occ = 1 BEGIN IF @Val_Next_2 <> 0 BEGIN SET @sText = SUBSTRING(@sText, 1, @Val_Next_2 - 1) END SET @bcontinue = 0 END END END
-- Insert all other occurence WHILE ( 1 = 1 ) BEGIN SET @Val_Next_1 = CHARINDEX(@sDelim, @sText) SET @Val_Next_2 = CHARINDEX(@sDelim, SUBSTRING(@sText, @Val_Next_1 + 1, 4000))
SET @sText = SUBSTRING(@sText, @Val_Next_1 + 1, 4000)
IF @Val_Next_2 <> 0 BEGIN SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER ) VALUES( SUBSTRING(@sText, 1, @Val_Next_2 - 1), @OccurenceNumber ) END ELSE BEGIN IF @sText <> '' BEGIN SET @OccurenceNumber = @OccurenceNumber + 1
INSERT INTO @MySplitTable( MY_VALUE, MY_ORDER ) VALUES( @sText, @OccurenceNumber ) END BREAK END END
RETURN END
---------------------------------------------------------------------- Philippe TROTIN - Microsoft Service France
"Scandecor" wrote in message news:43a7ce2f$0$21749$
Bonjour,
Je cherche comment inclure dans une variable plusieurs données afin d'extraire les enregistrements mentionnés par cette variable dans une procédure stockée utilisée pour un développement sur Crystal Report.