Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2011, 12h35   #1
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Par défaut Paramètre dans la partie select de la requête

Est-il possible d'utiliser un paramètre dans le Select d'une requête FireBird?
Exemple:
matable(id,date_debut,date_fin)

La requête:
Code sql :
1
2
3
4
5
SELECT id,
SUM(date_fin - date_debut) AS "durée",
SUM(:autre_date - date_debut) AS "durée personnalisée"
FROM matable
GROUP BY id;
tels que autre_date prend la valeur 1er jour du mois ou bien celle du dernier jours du mois.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 13h41   #2
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Citation:
Envoyé par adelneo Voir le message
Est-il possible d'utiliser un paramètre dans le Select d'une requête FireBird?
EXP:
matable(id,date_debut,date_fin)

La requête:
SELECT id,
SUM(date_fin - date_debut) as "durée",
SUM(:autre_date - date_debut) as "durée personnalisée"
FROM matable
GROUP BY id;

tels que autre_date prend la valeur 1er jour du mois ou bien celle du dernier jours du mois.
Oui, c'est possible.
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/07/2011, 15h24   #3
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
J’obtiens ce message d'erreur en exécutant cette requête dans IBExpert:
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported

je précise que l'erreur vient de la ligne
Code :
SUM(:autre_date - date_debut) AS "durée_personnalisée"
en changeant le :autre_date par currentdate par exemple ça marche trés bien.
ça m'étonne que l'utilisation de :autre_date soit possible dans le SELECT.
Comment remédier à cette situation ?
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 15h31   #4
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
il faut soit utiliser un PS,
soit dans ibexpert, utiliser les Blocks
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 21h28   #5
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par dehorter olivier Voir le message
il faut soit utiliser un PS,
soit dans ibexpert, utiliser les Blocks
Veuillez me donner plus de détail svp.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 21h49   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Je ne connais pas Firebird mais je pense qu'en SQL normalisé ça devrait donner quelque chose de ce genre pour le premier jour du mois :
Code :
1
2
3
4
5
SELECT id,
  SUM(date_fin - date_debut) AS "durée",
  SUM(CAST(EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM CURRENT_DATE) || '-01' AS DATE) - date_debut) AS "durée personnalisée"
FROM matable
GROUP BY id;
La double barre verticale est l'opérateur SQL normalisé pour la concaténation des chaînes de caractères mais par exemple chez MySQL il faut utiliser CONCAT à la place.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 22h24   #7
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par CinePhil Voir le message
Je ne connais pas Firebird mais je pense qu'en SQL normalisé ça devrait donner quelque chose de ce genre pour le premier jour du mois :
Code :
1
2
3
4
5
SELECT id,
  SUM(date_fin - date_debut) AS "durée",
  SUM(CAST(EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM CURRENT_DATE) || '-01' AS DATE) - date_debut) AS "durée personnalisée"
FROM matable
GROUP BY id;
La double barre verticale est l'opérateur SQL normalisé pour la concaténation des chaînes de caractères mais par exemple chez MySQL il faut utiliser CONCAT à la place.
Votre requête fonctionne très bien avec FireBird.
il ne me reste que trouver une solution pour le dernier jour du mois vu qu'il peut prendre différentes valeurs (28,29,30,31) !
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 22h31   #8
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
je peux avoir le dernier jours du mois grâce à une fonction sous l'environnement de développement que j'utilise, mais pour la passer en paramètre dans ma requête ça coince.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 23h35   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Le dernier jour du mois, c'est le premier jour du mois suivant moins un jour !
Code :
CAST(EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM CURRENT_DATE) +1 || '-01' AS DATE) - INTERVAL 1 DAY
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 23h44   #10
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par CinePhil Voir le message
Le dernier jour du mois, c'est le premier jour du mois suivant moins un jour !
Code :
CAST(EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM CURRENT_DATE) +1 || '-01' AS DATE) - INTERVAL 1 DAY
idée très intelligente mais ( INTERVAL 1 DAY ) ne fonctionne pas sous FB, je vais voir ce que je pourrais mettre à sa place.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 01h00   #11
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
après quelques modifications :
Code sql :
dateadd(day,-1,CAST(EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM dateadd(month,1,current_date)) || '-01' AS DATE))

on obtient bien le dernier jours du mois.
Merci CinePhil.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 11h53   #12
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Le calcul du premier et du dernier jour du mois est résolu, mais seulement pour la date en cours (Current_date).
Dans mon cas j'ai besoin que la date soit dynamique (paramétrable).
En procédant comme suit, le SGBD génère toujours une erreur :
Code SQL :
dateadd(day,-1,CAST(EXTRACT(YEAR FROM :Autre_date) || '-' || EXTRACT(MONTH FROM dateadd(month,1,:Autre_date)) || '-01' AS DATE))

Donc le problème de paramètre dans le SELECT de ma requête SQL se pose toujours.
Y a-t-il une Solution ?
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 21h45   #13
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Si tu fais tout en SQL, il faut créer une fonction qui va prendre en paramètre d'entrée la date que tu souhaites.
Si tu lances la requête SQL à l'aide d'un langage externe, celui du logiciel qui utilise la base de données par exemple, il faut créer ta requête dynamique dans ce langage et envoyer la requête paramétrée au SGBD via ce même langage.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 01h17   #14
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par CinePhil Voir le message
Si tu fais tout en SQL, il faut créer une fonction qui va prendre en paramètre d'entrée la date que tu souhaites.
Si tu lances la requête SQL à l'aide d'un langage externe, celui du logiciel qui utilise la base de données par exemple, il faut créer ta requête dynamique dans ce langage et envoyer la requête paramétrée au SGBD via ce même langage.
Je lancerai ma requête à l'aide du langage externe (Delphi), mais le paramétrage ne dépend pas seulement du langage mais surtout du SGBD.
Par exemple si je lance la requête suivante:
Code SQL :
1
2
3
SELECT id,
FROM matable
WHERE date_debut=:autre_date
Il suffit de donner une valeur au paramètre 'autre_date' pour exécuter la requête dynamiquement. Jusque là tout va bien.
Mais si le paramétrage s'effectue au niveau de SELECT comme :
Code SQL :
1
2
3
4
SELECT id,
SUM(:autre_date - date_debut) AS "durée personnalisée"
FROM matable
GROUP BY id;
Alors là ça ne marche pas. C’est le SGBD qui ne supporte pas le paramétrage au niveau de SELECT.
Donc ce que je vous demande c'est qu'elles sont les alternatives possibles ?
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 08h28   #15
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Adresse toi au forum Delphi car je suppose que, comme pour PHP et Java, il y a une manière de passer une requête au SGBD depuis Delphi. Et si la première requête fonctionne mais pas la seconde, c'est un problème Delphi, pas SQL.

Il est clair que la requête avec le nom du paramètre ne peut pas fonctionner directement dans le SGBD ; il faut que Delphi transforme ce paramètre en valeur avant d'envoyer la requête.

Et puisqu'il s'agit d'une date, il faut que cette date soit formatée d'une manière compréhensible par le SGBD. Le format standard SQL pour les dates est 'aaaa-mm-jj'.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 18h06   #16
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Citation:
Envoyé par TryExceptEnd Voir le message
Oui, c'est possible.
Avec une procédure stockée seulement.
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 16/07/2011, 01h25   #17
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par TryExceptEnd Voir le message
Avec une procédure stockée seulement.
C'est possible sans utiliser une procédure stockée. En lançant la requête par le langage de programmation, j’arrive à paramétrer mes requêtes et comme je veux.
Je remercie tout le monde.
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 23h46   #18
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Citation:
Envoyé par adelneo Voir le message
C'est possible sans utiliser une procédure stockée. En lançant la requête par le langage de programmation, j’arrive à paramétrer mes requêtes en comme je veux.
Je voudrais bien savoir comment et avec quels composants ?
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 00h21   #19
Membre éclairé
 
Homme Adel SOUFI
Ingénieur d'étude
Inscription : décembre 2010
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Adel SOUFI
Âge : 28
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur d'étude
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2010
Messages : 257
Points : 314
Points : 314
Envoyer un message via MSN à adelneo
Citation:
Envoyé par TryExceptEnd Voir le message
Je voudrais bien savoir comment et avec quels composants ?
Là nous allons sortir un peut des SGBD.
Supposons qu'on utilise un TDateTimePicker pour obtenir la date voulu, et que notre (:autre_date) aura la valeur 1 jours du mois.

Code Delphi :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
y,m,d:integer;
begin
decodedate(datetimepicker1.date,y,m,d);
with Query do
begin
close;
sql.clear;
sql.add('SELECT id,');
sql.add('SUM(date_fin - date_debut) AS "durée"');
sql.add('SUM(CAST('+inttostr(y)+'|| ''-'' || '+inttostr(m)+' || ''-01'' AS DATE) - date_debut) AS "durée_personnalisée"');
sql.add('FROM matable');
sql.add('GROUP BY id'); 
open;
end;
end;

Si c'est possible détaillez nous la solution de la procédure stockée (ça ne devrait pas être long).
adelneo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 13h20   #20
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Comme tu cherchais une requête paramétrée, j'ai répondu dans le cadre de cette question.

Citation:
Envoyé par adelneo Voir le message
Si c'est possible détaillez nous la solution de la procédure stockée (ça ne devrait pas être long).
Tu crée une procédure stockée dans Firebird :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE procedure PS_RETOURNE_PERIODES (
    autre_date date)
returns (
    id integer,
    periode integer,
    periode_personnalisee integer)
AS
begin
 FOR SELECT id,
 SUM(date_fin - date_debut) AS periode,
 SUM(:autre_date - date_debut) AS periode_personnalisee
 FROM matable
 GROUP BY id
 INTO :id,:periode,:periode_personnalisee
 DO SUSPEND;
end;
Puis dans delphi avec un composant Query :

Code :
1
2
3
4
5
6
7
WITH Query do
begin
 close;
 sql.Text := 'SELECT id,Periode,Periode_Personalisee FROM PS_RETOUNE_PERIODE(:autre_date)';
 Params.ByNameAsDate['autre_date'] := Valeur_de_la_Date;/*c'est selon le composant Query utilisé.*/
 open;
end;
A adapter selon les composants de connexion a la base de donnée.
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h04.


 
 
 
 
Partenaires

Hébergement Web