OVH Cloud OVH Cloud

xp_sendmail requete sans espace

4 réponses
Avatar
Oliv'
Bonjour,
J'utilise xp_sendmail avec sql 2000 dans un trigger pour retourner des
enregistrements dans un fichier txt par mail.
Cela fonctionne assez bien sauf que le fichier txt généré comporte des
espaces entre les colonnes :
**************************************************************************************
32905 ;2004-11-25 10:03:30.567; 4;DR ;Défense Recours
; 32156.00; .00;
NULL; NULL
**************************************************************************************

cela correspond si je met les titres à :
**************************************************************************************
ref_client ;DATE ;ordre_gie;gie ;Intitule
;EvalReg ;EvalRec ;Rgt
;Rec
---------------;-----------------------;---------;----;--------------------------------------------------------------------------------------------------------------------------------;------------------------------;------------------------------;------------------------------;------------------------------
32905 ;2004-11-25 10:02:06.193; 4;DR ;Défense Recours
; .00; .00;
NULL; NULL
***************************************************************************************

COMMENT FAIRE pour supprimer ces espaces ????
Oliv'

Voici une partie du code :
declare @C1_CLIENT_EMAIL varchar(100),
@requete varchar(1000),
@requete1 varchar(1000),
@sujet varchar(100)

select @C1_CLIENT_EMAIL = SinC1_CLIENT_EMAIL from SI_Sinistres_4Roues where
SinC1_Sinistre_id = @sinistre_id

select @requete = 'select ref_client=SinC1_NUMERO_SINISTRE_CLIENT,
DATE=GETDATE(),ordre_gie=Singa_Ordre, gie=Singa_Garantie_id,
Intitule=Singa_Intitule, EvalReg=Singa_EvalReg, EvalRec=Singa_EvalRec,
Rgt=Singa_AffectReg, Rec=Singa_AffectRec FROM winpass.dbo.SI_Garanties,
winpass.dbo.SI_Sinistres, winpass.dbo.SI_Sinistres_4Roues WHERE
SI_Sinistres.Sin_Sinistre_id = SI_Sinistres_4Roues.SinC1_Sinistre_id AND
SI_Sinistres_4Roues.SinC1_Sinistre_id = SI_Garanties.Singa_Sinistre_id AND
SI_Sinistres.Sin_sinistre_id =' + CAST(@sinistre_id AS varchar(30)) + ' and
Singa_Ordre =' + CAST(@ordre as varchar(30)),
@sujet ='Provisions sinistre '+@refcourtier

mail:
EXEC master.dbo.xp_sendmail @recipients = @C1_CLIENT_EMAIL,
@query = @requete ,
@message = 'voir document joint',
@attachments ='provision.txt',
@subject = @sujet,
@attach_results= 'TRUE',@width = 20000,
@separator =';',
@no_header = true,
@ansi_attachment = false

4 réponses

Avatar
Philippe [MS]
Bonjour,

Peut être un RTRIM(LTRIM(MaColumn)) pour chaque colonne composant le message
?

Quelle est exactement votre commande ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a5a2df$0$17351$
Bonjour,
J'utilise xp_sendmail avec sql 2000 dans un trigger pour retourner des
enregistrements dans un fichier txt par mail.
Cela fonctionne assez bien sauf que le fichier txt généré comporte des
espaces entre les colonnes :



****************************************************************************
**********
32905 ;2004-11-25 10:03:30.567; 4;DR ;Défense Recours
; 32156.00; .00;
NULL; NULL



****************************************************************************
**********

cela correspond si je met les titres à :



****************************************************************************
**********
ref_client ;DATE ;ordre_gie;gie ;Intitule
;EvalReg ;EvalRec ;Rgt
;Rec
---------------;-----------------------;---------;----;-------------------


----------------------------------------------------------------------------
---------------------------------;------------------------------;-----------
-------------------;------------------------------;-------------------------
-----
32905 ;2004-11-25 10:02:06.193; 4;DR ;Défense Recours
; .00; .00;
NULL; NULL



****************************************************************************
***********

COMMENT FAIRE pour supprimer ces espaces ????
Oliv'

Voici une partie du code :
declare @C1_CLIENT_EMAIL varchar(100),
@requete varchar(1000),
@requete1 varchar(1000),
@sujet varchar(100)

select @C1_CLIENT_EMAIL = SinC1_CLIENT_EMAIL from SI_Sinistres_4Roues


where
SinC1_Sinistre_id = @sinistre_id

select @requete = 'select ref_client=SinC1_NUMERO_SINISTRE_CLIENT,
DATE=GETDATE(),ordre_gie=Singa_Ordre, gie=Singa_Garantie_id,
Intitule=Singa_Intitule, EvalReg=Singa_EvalReg, EvalRec=Singa_EvalRec,
Rgt=Singa_AffectReg, Rec=Singa_AffectRec FROM winpass.dbo.SI_Garanties,
winpass.dbo.SI_Sinistres, winpass.dbo.SI_Sinistres_4Roues WHERE
SI_Sinistres.Sin_Sinistre_id = SI_Sinistres_4Roues.SinC1_Sinistre_id AND
SI_Sinistres_4Roues.SinC1_Sinistre_id = SI_Garanties.Singa_Sinistre_id AND
SI_Sinistres.Sin_sinistre_id =' + CAST(@sinistre_id AS varchar(30)) + '


and
Singa_Ordre =' + CAST(@ordre as varchar(30)),
@sujet ='Provisions sinistre '+@refcourtier

mail:
EXEC master.dbo.xp_sendmail @recipients = @C1_CLIENT_EMAIL,
@query = @requete ,
@message = 'voir document joint',
@attachments ='provision.txt',
@subject = @sujet,
@attach_results= 'TRUE',@width = 20000,
@separator =';',
@no_header = true,
@ansi_attachment = false




Avatar
Oliv'
En fait je n'ai pas d'espace quand je lance la requete directement avec
l'analyseur de requete.
Il semble que cela reprenne la taille des colonnes de chaque champ
Oliv'

"Philippe [MS]" a écrit dans le message de
news:
Bonjour,

Peut être un RTRIM(LTRIM(MaColumn)) pour chaque colonne composant le message
?

Quelle est exactement votre commande ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a5a2df$0$17351$
Bonjour,
J'utilise xp_sendmail avec sql 2000 dans un trigger pour retourner des
enregistrements dans un fichier txt par mail.
Cela fonctionne assez bien sauf que le fichier txt généré comporte des
espaces entre les colonnes :



****************************************************************************
**********
32905 ;2004-11-25 10:03:30.567; 4;DR ;Défense Recours
; 32156.00; .00;
NULL; NULL



****************************************************************************
**********

cela correspond si je met les titres à :



****************************************************************************
**********
ref_client ;DATE ;ordre_gie;gie ;Intitule
;EvalReg ;EvalRec ;Rgt
;Rec
---------------;-----------------------;---------;----; -------------------


----------------------------------------------------------------------------
---------------------------------;------------------------------;-----------
-------------------;------------------------------;-------------------------
-----
32905 ;2004-11-25 10:02:06.193; 4;DR ;Défense Recours
; .00; .00;
NULL; NULL



****************************************************************************
***********

COMMENT FAIRE pour supprimer ces espaces ????
Oliv'

Voici une partie du code :
declare @C1_CLIENT_EMAIL varchar(100),
@requete varchar(1000),
@requete1 varchar(1000),
@sujet varchar(100)

select @C1_CLIENT_EMAIL = SinC1_CLIENT_EMAIL from SI_Sinistres_4Roues


where
SinC1_Sinistre_id = @sinistre_id

select @requete = 'select ref_client=SinC1_NUMERO_SINISTRE_CLIENT,
DATE=GETDATE(),ordre_gie=Singa_Ordre, gie=Singa_Garantie_id,
Intitule=Singa_Intitule, EvalReg=Singa_EvalReg, EvalRec=Singa_EvalRec,
Rgt=Singa_AffectReg, Rec=Singa_AffectRec FROM winpass.dbo.SI_Garanties,
winpass.dbo.SI_Sinistres, winpass.dbo.SI_Sinistres_4Roues WHERE
SI_Sinistres.Sin_Sinistre_id = SI_Sinistres_4Roues.SinC1_Sinistre_id AND
SI_Sinistres_4Roues.SinC1_Sinistre_id = SI_Garanties.Singa_Sinistre_id AND
SI_Sinistres.Sin_sinistre_id =' + CAST(@sinistre_id AS varchar(30)) + '


and
Singa_Ordre =' + CAST(@ordre as varchar(30)),
@sujet ='Provisions sinistre '+@refcourtier

mail:
EXEC master.dbo.xp_sendmail @recipients = @C1_CLIENT_EMAIL,
@query = @requete ,
@message = 'voir document joint',
@attachments ='provision.txt',
@subject = @sujet,
@attach_results= 'TRUE',@width = 20000,
@separator =';',
@no_header = true,
@ansi_attachment = false




Avatar
Philippe [MS]
Bonjour,

Sortez-vous le résultat dans l'analyseur de requête au format texte ou en
colonne ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a61b18$0$10850$
En fait je n'ai pas d'espace quand je lance la requete directement avec
l'analyseur de requete.
Il semble que cela reprenne la taille des colonnes de chaque champ
Oliv'

"Philippe [MS]" a écrit dans le message de
news:
Bonjour,

Peut être un RTRIM(LTRIM(MaColumn)) pour chaque colonne composant le


message
?

Quelle est exactement votre commande ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a5a2df$0$17351$
> Bonjour,
> J'utilise xp_sendmail avec sql 2000 dans un trigger pour retourner des
> enregistrements dans un fichier txt par mail.
> Cela fonctionne assez bien sauf que le fichier txt généré comporte des
> espaces entre les colonnes :
>



****************************************************************************
**********
> 32905 ;2004-11-25 10:03:30.567; 4;DR ;Défense Recours
> ; 32156.00; .00;
> NULL; NULL
>



****************************************************************************
**********
>
> cela correspond si je met les titres à :
>



****************************************************************************
**********
> ref_client ;DATE ;ordre_gie;gie ;Intitule
> ;EvalReg ;EvalRec ;Rgt
> ;Rec

---------------;-----------------------;---------;----; ------------------


-
--------------------------------------------------------------------------


--
---------------------------------;------------------------------;---------


--
-------------------;------------------------------;-----------------------


--
-----
> 32905 ;2004-11-25 10:02:06.193; 4;DR ;Défense Recours
> ; .00; .00;
> NULL; NULL
>



****************************************************************************
***********
>
> COMMENT FAIRE pour supprimer ces espaces ????
> Oliv'
>
> Voici une partie du code :
> declare @C1_CLIENT_EMAIL varchar(100),
> @requete varchar(1000),
> @requete1 varchar(1000),
> @sujet varchar(100)
>
> select @C1_CLIENT_EMAIL = SinC1_CLIENT_EMAIL from SI_Sinistres_4Roues
where
> SinC1_Sinistre_id = @sinistre_id
>
> select @requete = 'select ref_client=SinC1_NUMERO_SINISTRE_CLIENT,
> DATE=GETDATE(),ordre_gie=Singa_Ordre, gie=Singa_Garantie_id,
> Intitule=Singa_Intitule, EvalReg=Singa_EvalReg, EvalRec=Singa_EvalRec,
> Rgt=Singa_AffectReg, Rec=Singa_AffectRec FROM


winpass.dbo.SI_Garanties,
> winpass.dbo.SI_Sinistres, winpass.dbo.SI_Sinistres_4Roues WHERE
> SI_Sinistres.Sin_Sinistre_id = SI_Sinistres_4Roues.SinC1_Sinistre_id AND
> SI_Sinistres_4Roues.SinC1_Sinistre_id = SI_Garanties.Singa_Sinistre_id


AND
> SI_Sinistres.Sin_sinistre_id =' + CAST(@sinistre_id AS varchar(30)) + '
and
> Singa_Ordre =' + CAST(@ordre as varchar(30)),
> @sujet ='Provisions sinistre '+@refcourtier
>
> mail:
> EXEC master.dbo.xp_sendmail @recipients = @C1_CLIENT_EMAIL,
> @query = @requete ,
> @message = 'voir document joint',
> @attachments ='provision.txt',
> @subject = @sujet,
> @attach_results= 'TRUE',@width = 20000,
> @separator =';',
> @no_header = true,
> @ansi_attachment = false
>
>





Avatar
Oliv'
Bonjour,
au format texte
Oliv'


"Philippe [MS]" a écrit dans le message de
news:
Bonjour,

Sortez-vous le résultat dans l'analyseur de requête au format texte ou en
colonne ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a61b18$0$10850$
En fait je n'ai pas d'espace quand je lance la requete directement avec
l'analyseur de requete.
Il semble que cela reprenne la taille des colonnes de chaque champ
Oliv'

"Philippe [MS]" a écrit dans le message de
news:
Bonjour,

Peut être un RTRIM(LTRIM(MaColumn)) pour chaque colonne composant le


message
?

Quelle est exactement votre commande ???

Phil.

"Oliv'" <(supprimerceci) wrote in message
news:41a5a2df$0$17351$
> Bonjour,
> J'utilise xp_sendmail avec sql 2000 dans un trigger pour retourner des
> enregistrements dans un fichier txt par mail.
> Cela fonctionne assez bien sauf que le fichier txt généré comporte des
> espaces entre les colonnes :
>



****************************************************************************
**********
> 32905 ;2004-11-25 10:03:30.567; 4;DR ;Défense Recours
> ; 32156.00; .00;
> NULL; NULL
>



****************************************************************************
**********
>
> cela correspond si je met les titres à :
>



****************************************************************************
**********
> ref_client ;DATE ;ordre_gie;gie ;Intitule
> ;EvalReg ;EvalRec ;Rgt
> ;Rec

---------------;-----------------------;---------;----; ------------------


-
--------------------------------------------------------------------------


--
---------------------------------;------------------------------;---------


--
-------------------;------------------------------;-----------------------


--
-----
> 32905 ;2004-11-25 10:02:06.193; 4;DR ;Défense Recours
> ; .00; .00;
> NULL; NULL
>



****************************************************************************
***********
>
> COMMENT FAIRE pour supprimer ces espaces ????
> Oliv'
>
> Voici une partie du code :
> declare @C1_CLIENT_EMAIL varchar(100),
> @requete varchar(1000),
> @requete1 varchar(1000),
> @sujet varchar(100)
>
> select @C1_CLIENT_EMAIL = SinC1_CLIENT_EMAIL from SI_Sinistres_4Roues
where
> SinC1_Sinistre_id = @sinistre_id
>
> select @requete = 'select ref_client=SinC1_NUMERO_SINISTRE_CLIENT,
> DATE=GETDATE(),ordre_gie=Singa_Ordre, gie=Singa_Garantie_id,
> Intitule=Singa_Intitule, EvalReg=Singa_EvalReg, EvalRec=Singa_EvalRec,
> Rgt=Singa_AffectReg, Rec=Singa_AffectRec FROM


winpass.dbo.SI_Garanties,
> winpass.dbo.SI_Sinistres, winpass.dbo.SI_Sinistres_4Roues WHERE
> SI_Sinistres.Sin_Sinistre_id = SI_Sinistres_4Roues.SinC1_Sinistre_id AND
> SI_Sinistres_4Roues.SinC1_Sinistre_id = SI_Garanties.Singa_Sinistre_id


AND
> SI_Sinistres.Sin_sinistre_id =' + CAST(@sinistre_id AS varchar(30)) + '
and
> Singa_Ordre =' + CAST(@ordre as varchar(30)),
> @sujet ='Provisions sinistre '+@refcourtier
>
> mail:
> EXEC master.dbo.xp_sendmail @recipients = @C1_CLIENT_EMAIL,
> @query = @requete ,
> @message = 'voir document joint',
> @attachments ='provision.txt',
> @subject = @sujet,
> @attach_results= 'TRUE',@width = 20000,
> @separator =';',
> @no_header = true,
> @ansi_attachment = false
>
>