Merci une autre fois.
Maintenant le probleme que j'ai rencontre, c'est que l'affichage n'est pas bien reparti (dans le sens que j'obtiens trop de lignes vides entre le numero de client par exemple et le nom ou quelque chose comme ca) voici le code et l'affichage:
DECLARE LINES CURSOR FOR
SELECT
distinct(IdClient )
, FullName
, Orig_Residence
, New_Residence
, Orig_ClientType
, New_ClientType
, Orig_Influence
, New_Influence
, Orig_Country
, New_Country
, Orig_Status
, New_Status
, Orig_CTR
, New_CTR
FROM #OUTPUT
OPEN LINES
SET @num = (SELECT count(distinct(IdClient)) FROM #OUTPUT)
SET @Counter = 0
WHILE @Counter<@num
BEGIN
FETCH NEXT FROM LINES
INTO
@IdClient
, @FullName
, @Orig_Residence
, @New_Residence
, @Orig_ClientType
, @New_ClientType
, @Orig_Influence
, @New_Influence
, @Orig_Country
, @New_Country
, @Orig_Status
, @New_Status
, @Orig_CTR
, @New_CTR
IF (@Orig_Residence<>@New_Residence OR @Orig_ClientType <>@New_ClientType OR @Orig_Influence <>@New_Influence OR @Orig_Country <>@New_Country) -- OR @Orig_Status <>@New_Status )
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('')
INSERT INTO #PRINTTOFILE VALUES('The Client with ID '+@IdClient+' "'+@FullName+'" changed.')
END
IF @Orig_Residence<>@New_Residence
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('* His Residence Status Value has been changed from "'+CONVERT(nvarchar,@Orig_Residence) +'" to "' +CONVERT(nvarchar,@New_Residence)+'"')
END
IF (@Orig_Residence=@New_Residence OR @Orig_Residence=ISNULL(@New_Residence,0))
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('')
END
IF @Orig_ClientType <>@New_ClientType
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('* His Client Type Value has been changed from "'+CONVERT(nvarchar, @Orig_ClientType)+'" to "' +CONVERT(nvarchar,@New_ClientType)+'"' )
END
IF (@Orig_ClientType=ISNULL(@New_ClientType,0)OR @Orig_ClientType=@New_ClientType) OR @Orig_ClientType =@New_ClientType
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('')
END
IF (@Orig_Influence =@New_Influence OR @Orig_Influence =ISNULL(@New_Influence,0))
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('')
END
IF @Orig_Influence <>@New_Influence
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('* His Influence Value has been changed from "'+CONVERT(nvarchar,@Orig_Influence)+'" to "' +CONVERT(nvarchar,@New_Influence)+'"')
END
IF @Orig_Country <>@New_Country
BEGIN
SET @Orig_CTR= (SELECT dbo.Cls_Countries.DescrEng FROM dbo.Cls_Countries WHERE @Orig_Country=dbo.Cls_Countries.CountryId)
SET @New_CTR= (SELECT dbo.Cls_Countries.DescrEng FROM dbo.Cls_Countries WHERE @New_Country=dbo.Cls_Countries.CountryId)
INSERT INTO #PRINTTOFILE VALUES ('* His Country has been changed from "' +@Orig_CTR+'" to "' +@New_CTR+'" ( Country ID: ' +CONVERT(nvarchar,@Orig_Country)+' to: ' +CONVERT(nvarchar,+@New_Country) +' )')
END
IF (@Orig_Country =@New_Country OR @Orig_Country =ISNULL(@New_Country,0))
BEGIN
INSERT INTO #PRINTTOFILE VALUES ('')
END
SET @Counter = @Counter + 1
END
CLOSE LINES
DEALLOCATE LINES
et l'affichage est:
The Client with ID 262 "Steiner Kurt Hannes" changed.
* His Country has been changed from "Austria" to "Germany"
donc il y a trop d'espace entre les lignes.... :(