je voudrais savoir comment récuperer une valeur pour procédure stockée ?
est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans
mon Bon de livraison.
Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui
ajouter +1 pour avoir mon nouveau n° de ligne.
C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra
pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y
ajouter une fonction pour justement récupérer mon N° de ligne ??
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
Laxa
"aitoz" wrote in message news:
Bonjour a tous,
je voudrais savoir comment récuperer une valeur pour procédure stockée ? est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans mon Bon de livraison. Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui ajouter +1 pour avoir mon nouveau n° de ligne. C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
Dans ta procédure ajoute un paramètre de type OUTPUT
En vb.net déclare ce paramètre et ajoute le dans ta commande, par expl:
Dim CMD As SqlCommand = New SqlCommand Dim Value as Object CMD.Parameters.Add(New SqlParameter("Ton_parametername", SqlDbType.Int, Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current, Value))
Idéalement c'est mieux d'utiliser une colonne de type Identity plutôt que de rechercher le MAX, dans ta procédure tu peux récupérer le numéro via @@IDENTITY juste après l'INSERT.
Pascal
"aitoz" <laurent9@hotmail.com> wrote in message
news:Oz4QlnssFHA.2072@TK2MSFTNGP14.phx.gbl...
Bonjour a tous,
je voudrais savoir comment récuperer une valeur pour procédure stockée ?
est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes
dans mon Bon de livraison.
Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui
ajouter +1 pour avoir mon nouveau n° de ligne.
C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra
pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y
ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
Dans ta procédure ajoute un paramètre de type OUTPUT
En vb.net déclare ce paramètre et ajoute le dans ta commande, par expl:
Dim CMD As SqlCommand = New SqlCommand
Dim Value as Object
CMD.Parameters.Add(New SqlParameter("Ton_parametername", SqlDbType.Int,
Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current,
Value))
Idéalement c'est mieux d'utiliser une colonne de type Identity plutôt que de
rechercher le MAX, dans ta procédure tu peux récupérer le numéro via
@@IDENTITY juste après l'INSERT.
je voudrais savoir comment récuperer une valeur pour procédure stockée ? est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans mon Bon de livraison. Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui ajouter +1 pour avoir mon nouveau n° de ligne. C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
Dans ta procédure ajoute un paramètre de type OUTPUT
En vb.net déclare ce paramètre et ajoute le dans ta commande, par expl:
Dim CMD As SqlCommand = New SqlCommand Dim Value as Object CMD.Parameters.Add(New SqlParameter("Ton_parametername", SqlDbType.Int, Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current, Value))
Idéalement c'est mieux d'utiliser une colonne de type Identity plutôt que de rechercher le MAX, dans ta procédure tu peux récupérer le numéro via @@IDENTITY juste après l'INSERT.
Pascal
aitoz
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et j'ai une procédure stockée qui m'effectue bien l'ajout de la nouvelle ligne de livraison. Mais je n'arrive pas a ajouter ma ligne de livraison avec le n° de ligne récupérer dans la première procédure stockée. Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table BL. With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je
veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne
de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et j'ai
une procédure stockée qui m'effectue bien l'ajout de la nouvelle ligne de
livraison. Mais je n'arrive pas a ajouter ma ligne de livraison avec le n°
de ligne récupérer dans la première procédure stockée.
Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je
voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table BL.
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
NBLGN = cmdNumLigne.ExecuteNonQuery()
End With
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et j'ai une procédure stockée qui m'effectue bien l'ajout de la nouvelle ligne de livraison. Mais je n'arrive pas a ajouter ma ligne de livraison avec le n° de ligne récupérer dans la première procédure stockée. Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table BL. With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
aitoz
J'ai trouvé la réponse grace a fabien ! Je dois faire Executescalar pour recevoir la réponse de ma procédure stockée et pas Executenonquery !
Merci a tous
J'ai trouvé la réponse grace a fabien !
Je dois faire Executescalar pour recevoir la réponse de ma procédure stockée
et pas Executenonquery !
J'ai trouvé la réponse grace a fabien ! Je dois faire Executescalar pour recevoir la réponse de ma procédure stockée et pas Executenonquery !
Merci a tous
Laxa
"aitoz" wrote in message news:
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et j'ai une procédure stockée qui m'effectue bien l'ajout de la nouvelle ligne de livraison. Mais je n'arrive pas a ajouter ma ligne de livraison avec le n° de ligne récupérer dans la première procédure stockée. Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table BL. With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Tout d'abord il faut utiliser ExecuteScalar plutôt que ExecuteNonQuery car ce dernier ne retourne que le nombre de row affecté (-1 pour ta procédure) ExecuteScalar retourne une valeur, ca évite de passer par un datareader etc pour récupérer juste une valeur, ce qui est ton cas.
De plus tu dois retourner ce genre de valeur pas par un return mais par un paramètre de type OUTPUT (sinon je trouve plus logique d'utiliser une fonction SQL plutôt qu'une SP, enfin, ce n'est que mon avis)
Sinon ajoute un paramètre "LigneLivraison" à ta "ps_sgsa_numligne" en oubliant pas de spécifier OUTPUT create procedure ps_sgsa_numligne (@LigneLivraison int output) ......
Dim NBLGN as Object Dim ReturnValue as Object With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" cmdNumLigne.Parameters.Add(New SqlParameter("LigneLivraison", SqlDbType.Int, Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current, NBLGN )) SqlConnection1.Open() ReturnValue = cmdNumLigne.ExecuteScalar() NBLGN = cmdNumLigne.Parameters("LigneLivraison").Value End With
Voila, j'espère que ca répond à ta demande.
Pascal
"aitoz" <laurent9@hotmail.com> wrote in message
news:uuAhWFusFHA.788@TK2MSFTNGP09.phx.gbl...
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je
veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne
de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et
j'ai une procédure stockée qui m'effectue bien l'ajout de la nouvelle
ligne de livraison. Mais je n'arrive pas a ajouter ma ligne de livraison
avec le n° de ligne récupérer dans la première procédure stockée.
Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je
voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table
BL.
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
NBLGN = cmdNumLigne.ExecuteNonQuery()
End With
Tout d'abord il faut utiliser ExecuteScalar plutôt que ExecuteNonQuery car
ce dernier ne retourne que le nombre de row affecté (-1 pour ta procédure)
ExecuteScalar retourne une valeur, ca évite de passer par un datareader etc
pour récupérer juste une valeur, ce qui est ton cas.
De plus tu dois retourner ce genre de valeur pas par un return mais par un
paramètre de type OUTPUT
(sinon je trouve plus logique d'utiliser une fonction SQL plutôt qu'une SP,
enfin, ce n'est que mon avis)
Sinon ajoute un paramètre "LigneLivraison" à ta "ps_sgsa_numligne" en
oubliant pas de spécifier OUTPUT
create procedure ps_sgsa_numligne (@LigneLivraison int output)
......
Dim NBLGN as Object
Dim ReturnValue as Object
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
cmdNumLigne.Parameters.Add(New SqlParameter("LigneLivraison", SqlDbType.Int,
Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current,
NBLGN ))
SqlConnection1.Open()
ReturnValue = cmdNumLigne.ExecuteScalar()
NBLGN = cmdNumLigne.Parameters("LigneLivraison").Value
End With
J'ai regardé la variable @@IDENTITY, mais ca ne conviens pas a ce que je veux. C'est bon pour un n° de facture, mais moi je veux un numéro de ligne de bordereau de livraison. J'aurai donc la ligne N°1 a tous les BL.
En fait j'ai une procédure stockée qui me renvoie bien le bon nombre et j'ai une procédure stockée qui m'effectue bien l'ajout de la nouvelle ligne de livraison. Mais je n'arrive pas a ajouter ma ligne de livraison avec le n° de ligne récupérer dans la première procédure stockée. Voici mon code ! et la valeur retournée dans NBLGN est -1 ??? moi je voudrais voir marqué 3 qui correspond au MAX de N° de ligne de la table BL. With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Tout d'abord il faut utiliser ExecuteScalar plutôt que ExecuteNonQuery car ce dernier ne retourne que le nombre de row affecté (-1 pour ta procédure) ExecuteScalar retourne une valeur, ca évite de passer par un datareader etc pour récupérer juste une valeur, ce qui est ton cas.
De plus tu dois retourner ce genre de valeur pas par un return mais par un paramètre de type OUTPUT (sinon je trouve plus logique d'utiliser une fonction SQL plutôt qu'une SP, enfin, ce n'est que mon avis)
Sinon ajoute un paramètre "LigneLivraison" à ta "ps_sgsa_numligne" en oubliant pas de spécifier OUTPUT create procedure ps_sgsa_numligne (@LigneLivraison int output) ......
Dim NBLGN as Object Dim ReturnValue as Object With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" cmdNumLigne.Parameters.Add(New SqlParameter("LigneLivraison", SqlDbType.Int, Nothing, ParameterDirection.Output, False, 0, 0, "", DataRowVersion.Current, NBLGN )) SqlConnection1.Open() ReturnValue = cmdNumLigne.ExecuteScalar() NBLGN = cmdNumLigne.Parameters("LigneLivraison").Value End With
Voila, j'espère que ca répond à ta demande.
Pascal
Laxa
"aitoz" wrote in message news:
J'ai trouvé la réponse grace a fabien ! Je dois faire Executescalar pour recevoir la réponse de ma procédure stockée et pas Executenonquery !
Merci a tous
Si tu utilise le return pour retourner ce genre d'info et que tu n'utilise pas de paramètre de type OUTPUT, comment tu fais pour remonter une erreur qui pourait se déclencher dans ta procédure ?
Pascal
"aitoz" <laurent9@hotmail.com> wrote in message
news:ucyQJvusFHA.3404@TK2MSFTNGP09.phx.gbl...
J'ai trouvé la réponse grace a fabien !
Je dois faire Executescalar pour recevoir la réponse de ma procédure
stockée et pas Executenonquery !
Merci a tous
Si tu utilise le return pour retourner ce genre d'info et que tu n'utilise
pas de paramètre de type OUTPUT, comment tu fais pour remonter une erreur
qui pourait se déclencher dans ta procédure ?
J'ai trouvé la réponse grace a fabien ! Je dois faire Executescalar pour recevoir la réponse de ma procédure stockée et pas Executenonquery !
Merci a tous
Si tu utilise le return pour retourner ce genre d'info et que tu n'utilise pas de paramètre de type OUTPUT, comment tu fais pour remonter une erreur qui pourait se déclencher dans ta procédure ?
Pascal
aitoz
ma variable dans ma procédure stockée est bien en OUTPUT, mon probleme était d'envoyer ma command avec executenonquery !
merci pour votre aide
ma variable dans ma procédure stockée est bien en OUTPUT,
mon probleme était d'envoyer ma command avec executenonquery !
ma variable dans ma procédure stockée est bien en OUTPUT, mon probleme était d'envoyer ma command avec executenonquery !
merci pour votre aide
Laxa
"aitoz" wrote in message news:%
ma variable dans ma procédure stockée est bien en OUTPUT, mon probleme était d'envoyer ma command avec executenonquery !
merci pour votre aide
Pas de quoi :-) C'est plus un problème .NET que SQL, peut-être crossposte aussi ce genre de problème sur d'autres newsgroup comme .fr.donet.adonet etc
En ce qui concerne cette logique, depuis .SQL2000 j'utilise des uniqueidentifier et utilise une table supplémentaire pout tout ce qui est compteur, juste pour être certain que c'est unique et de plus c'est mon code en vb.net qui peut créer le guid et donc plus facile pour retourner à coup sur la valeur après un insert (avant j'utilisais un "insert....; select @@indetity" pour retourner la valeur sans devoir utiliser de procédure). Bon d'accord, c'est moins clair quand on consulte les tables en enterprise manager ou query analyzer etc mais bon depuis le temps mes yeux se sont habitué aux guid :-))
Pascal
"aitoz" <laurent9@hotmail.com> wrote in message
news:%23ELAP9vsFHA.236@TK2MSFTNGP11.phx.gbl...
ma variable dans ma procédure stockée est bien en OUTPUT,
mon probleme était d'envoyer ma command avec executenonquery !
merci pour votre aide
Pas de quoi :-)
C'est plus un problème .NET que SQL, peut-être crossposte aussi ce genre de
problème sur d'autres newsgroup comme .fr.donet.adonet etc
En ce qui concerne cette logique, depuis .SQL2000 j'utilise des
uniqueidentifier et utilise une table supplémentaire pout tout ce qui est
compteur, juste pour être certain que c'est unique et de plus c'est mon code
en vb.net qui peut créer le guid et donc plus facile pour retourner à coup
sur la valeur après un insert (avant j'utilisais un "insert....; select
@@indetity" pour retourner la valeur sans devoir utiliser de procédure).
Bon d'accord, c'est moins clair quand on consulte les tables en enterprise
manager ou query analyzer etc mais bon depuis le temps mes yeux se sont
habitué aux guid :-))
ma variable dans ma procédure stockée est bien en OUTPUT, mon probleme était d'envoyer ma command avec executenonquery !
merci pour votre aide
Pas de quoi :-) C'est plus un problème .NET que SQL, peut-être crossposte aussi ce genre de problème sur d'autres newsgroup comme .fr.donet.adonet etc
En ce qui concerne cette logique, depuis .SQL2000 j'utilise des uniqueidentifier et utilise une table supplémentaire pout tout ce qui est compteur, juste pour être certain que c'est unique et de plus c'est mon code en vb.net qui peut créer le guid et donc plus facile pour retourner à coup sur la valeur après un insert (avant j'utilisais un "insert....; select @@indetity" pour retourner la valeur sans devoir utiliser de procédure). Bon d'accord, c'est moins clair quand on consulte les tables en enterprise manager ou query analyzer etc mais bon depuis le temps mes yeux se sont habitué aux guid :-))
Pascal
Fred BROUARD
votre faon de procéder risque de conduire un jour ou l'autre à une "désintégration" de la base de données. En effet, le calcul de clef, quelles qu'elle soient doit se faire dans une transaction au niveau SERIALIZABLE et les n° consommés doivent être stocké dans une table. posez vous la question de savoir ce qui se passe dans votre code si deux utilisateurs distints effectuent le même travail sur les mêmes données au même moment. Et ne me dite pas que cela est impossible : cela arrivera !
A lire sur le sujet : http://sqlpro.developpez.com/cours/clefs/
A +
aitoz a écrit:
Bonjour a tous,
je voudrais savoir comment récuperer une valeur pour procédure stockée ? est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans mon Bon de livraison. Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui ajouter +1 pour avoir mon nouveau n° de ligne. C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
votre faon de procéder risque de conduire un jour ou l'autre à une
"désintégration" de la base de données.
En effet, le calcul de clef, quelles qu'elle soient doit se faire dans une
transaction au niveau SERIALIZABLE et les n° consommés doivent être stocké dans
une table.
posez vous la question de savoir ce qui se passe dans votre code si deux
utilisateurs distints effectuent le même travail sur les mêmes données au même
moment. Et ne me dite pas que cela est impossible : cela arrivera !
A lire sur le sujet :
http://sqlpro.developpez.com/cours/clefs/
A +
aitoz a écrit:
Bonjour a tous,
je voudrais savoir comment récuperer une valeur pour procédure stockée ?
est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans
mon Bon de livraison.
Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui
ajouter +1 pour avoir mon nouveau n° de ligne.
C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra
pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y
ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
votre faon de procéder risque de conduire un jour ou l'autre à une "désintégration" de la base de données. En effet, le calcul de clef, quelles qu'elle soient doit se faire dans une transaction au niveau SERIALIZABLE et les n° consommés doivent être stocké dans une table. posez vous la question de savoir ce qui se passe dans votre code si deux utilisateurs distints effectuent le même travail sur les mêmes données au même moment. Et ne me dite pas que cela est impossible : cela arrivera !
A lire sur le sujet : http://sqlpro.developpez.com/cours/clefs/
A +
aitoz a écrit:
Bonjour a tous,
je voudrais savoir comment récuperer une valeur pour procédure stockée ? est-ce que vous avez un doc sur internet qui explique ca.
Mon probleme rapidement, je veux obtenir un N° de ligne pour mes lignes dans mon Bon de livraison. Pour ca je voudrais obtenir le N° de ligne le plus élévé (MAX) et lui ajouter +1 pour avoir mon nouveau n° de ligne. C'est bien parce que comme ca si quelqu'un supprime une ligne il ne pourra pas réutiliser le N° dans le meme BL.
j'ai une procédure stockée pour ajouter la ligne du BL et je voudrais y ajouter une fonction pour justement récupérer mon N° de ligne ??
Merci pour vos infos et bonne journée
Ps : Mon interface graphique est en vb.net
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************