|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
* Bonjour, *
Il me semble avoir lu quelque part que le Query assigné a sp_Send_Dbmail n'autorisait pas de paramètres Avant de me casser les dents là dessus pouvez-vous me le confirmer ? N.B. : Accessoirement peut-on faire un query multiple (plusieurs requêtes distincte séparées par ';' ) dans sp_Send_DbMail ? Merci de vos réponses
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Citation:
Citation:
++ |
||
|
00
|
|
|
#3 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Je confirme pour l'exécution de plusieurs requêtes. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#4 | |||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Citation:
Code :
Sinon je suppose que je dois construire la chaine de requete avant de l'assigner !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|||
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Héhé non
Pour cela il faut du SQL dynamique : Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Oui je vois ! J'avais cru m'en tirer avec un truc du genre, mais je ne fais que deplacer le problème Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||
|
|
00
|
|
|
#7 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Rien ne t'empêche d'écrire :
Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Oui c'est vrai ! Je m'etais laissé embrouiller par le problème de session en négligeant le fait que dans l'assignation le parametre @str est interprete dans l'appel alors que dans le cas Code :
@query = 'select * from tbl where ID=@xid ';
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Bonsoir Elsuket
J'ai donc avancé : voici a quoi j'arrive Cependant je pense que mes methode d'assignations de @Chauffeur et de Name dans le WHILE ne sont pas les meilleures et sans doute erroné por @Name car ca me donne 'C' dans le subject Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||
|
|
00
|
|
|
#10 | ||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Effectivement tu peux affecter tes variables dans le SELECT du WHILE :
Code :
Encore une fois : - Tu as oublié le SET NOCOUNT ON - Supprime les crochets, il ne servent à rien puisque le nommage de tes tables et colonnes sont nommés proprement (pas d'espace ou de caractères de ponctuations et autres caractères cabalistiques) - Ta procédure stockée étant dans la même base de données que la table que tu requêtes, tu n'as pas besoin de préfixer les tables par le nom de la base de données qui les supporte. En revanche il est toujours bon de qualifier les objets par le nom du schéma (ici, dbo) auquel ils appartiennent - Aère ton code ! Attention à tes types : la déclaration suivante est fausse : Car je suppose que tes chauffeurs ont un nom de plus d'une lettre En effet si on exécute : Code :
Regarde le type de la colonne ChauffeurName, et mets le même à la variable @Name. Si par exemple c'est varchar(32), comme tu ajoutes 'Chauffeur Gedaan :' devant, j'ai mis varchar(64). Il est dommage de devoir lire deux fois la table au moins (une fois par le EXISTS, une fois par le SELECT TOP 1). Tu ne peux pas envoyer un calcul pour tous les chauffeurs ? @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Ton aide est précieuse et tres instructive J'ai beaucoup plus d'expérience en C# C++ etc qu'en SQL Mais tu m'aide beaucoup a avancer Je vais me replonger la dedans ce soir
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#12 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Citation:
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
|
|
#13 | ||||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Bonsoir a tous
Et bonsoir Elsuket Voici mon code actuel (je n'oserais pas dire définitif) - J'espere que maintenant j'ai utilisé correctement SET NOCOUNT ON - A ce propos j'aimerais quand meme afficher le total des rows, :
- J'ai un peu ramé en devant ajouter la constante 'Total' dans mon query mais une vieille experience AWK et Linux m'ont aidé Code :
Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||||
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Citation:
(voir derniere mouture de mon code) J'ai encore un Souci avec SET NOCOUNT ON A mon avis c'est inoperant pour l'appel de sp_Send_DbMail Par contre che cherche toujours comment faire disparaitre le (n rows affected) du resultat du Query sp_Send_DbMail Et par ailleurs, ajouter un total formaté du genre (5 Containers déplacés) Je me demande donc s'il n'est pas plus simple, d'effectuer le query AVANT le sp_Send_DbMail, de l'assigner dans un VARCHAR(MAX) et mettre ce varchar dans le body du mail ? Voici le détail d'un mail (c'est encore moins bien présenté ici qu'en vrai) Citation:
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||
|
|
00
|
|
|
#15 | |||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
J'ai donc essayé de construire le body avec le résultat d'un select casté en VARCHAR avant l'appel de sp_Send_Dbmail
Ca donne le code ci-après, mais j'ai une message d'erreur Citation:
Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|||
|
|
00
|
|
|
#16 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Est-ce que ton idée est de montrer le résultat de la requête en HTML dans le mail ?
Est-ce qu'il ne serait pas mieux de faire un rapport SSRS pour cela ? @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#17 | |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Citation:
C'est quoi un rapport SSRS ? Je dois aussi essayer de ne pas prendre trop de ressource pour ce rapport afin de minimiser le risque de perte de connexion entre l'appel de la requete et le retour d'execution (cette gestion d'exception est asser lourde)
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
|
00
|
|
|
#18 | |||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Bonjour
Ce qui me bloque le plus actuellement c'est comment ajouter le total des Rows utile dans le select que je construit pour sp_Send_Dbmail A l'issue du Query ci-apres Apres le resultat je trouve Citation:
Je pourrais aussi truquer en l'ajoutant dand le libellé 'Total' mais là je ne sais pas comment faire ? Quelqu'un a une idée pour afficher d'une manière ou d'une autre ce total de row ? Merci de votre aide Code :
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|||
|
|
00
|
|
|
#19 | ||||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Citation:
Citation:
L'utilisateur du rapport a la possibilité de passer des valeurs aux paramètres de celui-ci, sans connaître quoi que ce soit au développement. On peut aussi souscrire des utilisateurs et leur envoyer le rapport par e-mail, ou le lien qui pointe vers celui-ci, éventuellement pré-paramétré. A voir en évolution de ce que tu fais actuellement. Citation:
Citation:
Ensuite tu peux écrire : Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||||
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Merci Elsuket
Mais je cependant que l'idée que javais exposé qq post précédent n'est pas faisable mais je n'ai pas très bien compris pourquoi ! Citation:
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com