Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > Installation
Installation Forum d'entraide sur l'installation et la configuration du serveur Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 13h05   #1
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Par défaut FB 2.1 et 2.5 dans Windows 7: UDF volage

Bonjour la liste.

J'ai un sérieux problème de fonctionnement de Firebird 2.1 (et 2.5) dans un Windows 7 (tant pro que ultimate) .
Installation: machine virtuelle dans un host ESX dans un gros serveur
4 gb mémoire, Windows 7 pro 32 bits anglais, rien de bien particulier; 1 admin et 1 user avec droits administrateur.

Installation de Firebird 2.1.3 en mode manuel (fichier zip)
unzip et copie des fichiers dans C:\Program Files\Firebird\Firebird 2.1
création d'un shortcut sur fbguard.exe avec paramètre "-a" dans la ligne de commande pour lancer firebird en mode application.
copie d'une dll Application.dll dans le répertoire udf de firebird avec celles qui y sont déjà.
lancement de fbguard: l'icône apparait dans le tray, tout OK
Lancement de IBExpert
création de connexions.
tests de connexion: OK
PUIS:
création d'une connexion "Compta", sur une DB qui contient dans les triggers des appels à des UDF de Application.dll et ce depuis les triggers système
active on transaction start ( et transaction commit et rollback) !!
dès la connexion: plantage
Citation:
Résultats:
erreur de Firebird:
invalid request BLR at offset 478.
function DATETIMETOSTR is not defined.
module name or entrypoint could not be found.

erreur confirmée dès le lancement via isql:
Database: c:\Data\DB\compta1.fdb, User: sysdba
Statement failed, SQLSTATE = 39000
invalid request BLR at offset 478
-function DATETIMETOSTR is not defined
-module name or entrypoint could not be found
Statement failed, SQLSTATE = 39000
invalid request BLR at offset 478
-function DATETIMETOSTR is not defined
-module name or entrypoint could not be found
Deux sous-produit inattendus et désolants:
1. le shutdown à travers de l'icone de FBguard ne tue pas le serveur. Il faut y aller manu military via le contrôleur de processus
2. il semble que la connexion n'est pas rompue car les propriétés de Firebird renseignent toujours une connexion active après le plantage

alors:
- le fichier Application.dll est bien dans le répertoire udf de Firebird
- c'est le bon fichier dll avec le bon nom (copié d'un autre poste où elle fonctionne, binaire identique)
- la DB est une DB copiée d'un autre poste où tout fonctionne à merveille
l'ensemble (DB, UDF et Firebird) fonctionne parfaitement sur ma station de travail vista pro et sur des XP
- les moteurs de Firebird sont lancés en mode application (ports différents)
- la même DB et le même fichier dll fonctionnent avec 2.1 et 2.5, même en simultané dans deux sessions.

Au vu des messages soit
- la fonction n'existe pas (DATETIMETOSTR) ce qui est exclu
- la dll n'est pas accessible par Firebird d'une manière que je ne parviens pas à m'expliquer
avec 2.1 ET 2.5 installés manuellement en tous les deux actifs

Si vous avez une solution sous le coude ou quelques idées elles seraient les bienvenues.

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 13h54   #2
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 260
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 260
Points : 3 582
Points : 3 582
dans win7 il faut être super admin pour travailler sur ce qui est dans C:\Program Files
ceci peut expliquer cela
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 14h10   #3
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Par défaut Déjà fait

Citation:
Envoyé par makowski Voir le message
dans win7 il faut être super admin pour travailler sur ce qui est dans C:\Program Files
ceci peut expliquer cela
Merci Philppe mais nous y avions déjà pensé. Mon message étant déjà long, je n'ai pas listé tout ce que nous avons fait comme variantes possibles et imaginables, y compris les installations standard comme service avec toujours les mêmes résultats.
On a tout déménagé dans C:\Firebird 2.1 avec exactement le même résultat.

Autre précision dans le même sens:
Dans une nouvelle DB où la connexion ne pose pas de problèmes et qui n'utilise pas d' UDF nous avons procédé au test suivant:

Code :
1
2
3
4
5
SET sql dialect 3;
DECLARE EXTERNAL FUNCTION DATETIMETOSTR
TIMESTAMP
RETURNS CSTRING(254) CHARACTER SET NONE
ENTRY_POINT 'DateTimeToStr' MODULE_NAME 'Application.dll';
et ensuite:
Code :
SELECT datetimetostr('now') FROM synchrodb;
le résultat est désespérément identique

Par contre le query suivant s'exécute bien:
Code :
SELECT abs(-123.456) FROM synchrodb
où abs semble être une UDF décrite dans ib_udf.dll venant avec Firebird.

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 14h52   #4
Barbibulle
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 726
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 43

Informations forums :
Inscription : octobre 2002
Messages : 1 726
Points : 2 375
Points : 2 375
Citation:
Envoyé par a.fortuny Voir le message
Autre précision dans le même sens:
Dans une nouvelle DB où la connexion ne pose pas de problèmes et qui n'utilise pas d' UDF nous avons procédé au test suivant:

set sql dialect 3;
DECLARE EXTERNAL FUNCTION DATETIMETOSTR
TIMESTAMP
RETURNS CSTRING(254) CHARACTER SET NONE
ENTRY_POINT 'DateTimeToStr' MODULE_NAME 'Application.dll';

et ensuite:
select datetimetostr('now') from synchrodb;

le résultat est désespérément identique
Bonjour,

En avez vous profité pour tester une autre fonction de Application.dll (j'imagine que vous en avez d'autres dedans.) Notamment s'il y a des fonctions sans string.
Juste pour voir si c'est la fonction ou si c'est vraiment la DLL

Qu'y a t'il dans le firebird.conf notamment pour "UdfAccess =" ?

Dernière chose, ABS est maintenant une fonction intégrée depuis la version... 2.x. Donc votre test select abs(-123.12) from... ne prouve pas que firebird arrive à charger les UDF.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 15h00   #5
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Par défaut toujours la même chose

Citation:
Envoyé par Barbibulle Voir le message
En avez vous profité pour tester une autre fonction de Application.dll (j'imagine que vous en avez d'autres dedans.) Notamment s'il y a des fonctions sans string.
Juste pour voir si c'est la fonction ou si c'est vraiment la DLL
En effet, c'était bien le test avec l'UDF DateTimeToStr qui n'existe que dans Application.dll. A chaque nouvel essai je le repasse sans succès.


Citation:
Envoyé par Barbibulle Voir le message
Qu'y a t'il dans le firebird.conf notamment pour "UdfAccess =" ?
très simple:
#
#UdfAccess = Restrict UDF

Citation:
Envoyé par Barbibulle Voir le message
Dernière chose, ABS est maintenant une fonction intégrée depuis la version... 2.x. Donc votre test select abs(-123.12) from... ne prouve pas que firebird arrive à charger les UDF.
En effet c'est la réflexion que je me suis faite

Merci en tout cas de répondre

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 15h39   #6
Barbibulle
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 726
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 43

Informations forums :
Inscription : octobre 2002
Messages : 1 726
Points : 2 375
Points : 2 375
Citation:
Envoyé par a.fortuny Voir le message
En effet, c'était bien le test avec l'UDF DateTimeToStr qui n'existe que dans Application.dll. A chaque nouvel essai je le repasse sans succès.
Non je me suis mal fait comprendre, avez vous essayé une autre fonction de votre DLL ?

Ou même une fonction fournie dans les UDF de firebird comme

Code :
1
2
3
4
declare external FUNCTION addYear
timestamp, int
returns timestamp
entry_point 'addYear' module_name 'fbudf';
Code :
SELECT addYear('now',1) FROM rdb$database;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 16h52   #7
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Bien vu.

Même erreur avec
Code :
"SELECT addYear('now',1) FROM rdb$database;"
Citation:
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
ADDYEAR.
Ensuite exécution du query fbudf.sql qui se trouve dans le répertoire UDF de Firebird 2.1
re-soumission de la requête et tout fonctionne.

Re-test avec trois autres fonctions de Application.dll et toujours la même erreur.
les déclarations que j'ai ajoutées (extrait):
Code :
1
2
3
4
DECLARE EXTERNAL FUNCTION CODE_SEMAINE
TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'CodeSemaine' MODULE_NAME 'Application.dll';
Code :
query: SELECT code_semaine('now') FROM synchrodb
Citation:
Invalid token.
invalid request BLR at offset 60.
function CODE_SEMAINE is not defined.
module name or entrypoint could not be found.
J'ai tout vérifié sur ma station VIsta jusqu'à faire un fc des deux dll qui ne donne aucune différence: fichiers identiques.

A en perdre le peu de latin qui me reste et je sens que ça va être une toute petite c....ie comme ça

Merci de vous occuper de mon cas. Désespéré ? De Windoze, oui.

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 17h10   #8
Barbibulle
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 726
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 43

Informations forums :
Inscription : octobre 2002
Messages : 1 726
Points : 2 375
Points : 2 375
Essayez de changer de firebird.conf

UdfAccess = Restrict c:\UDF

Créez le répertoire UDF à la racine de C et placez y application.dll

Arretez FB et relancez le.

Normalement le
Code :
SELECT addYear('now',1) FROM rdb$database;
ne doit plus fonctionner puisque vous n'avez pas copié fbudf.dll dans c:\UDF
(permet de vérifier que le .conf à bien été pris en compte)

Enfin testez votre fonction :

Code :
SELECT CODE_SEMAINE ('now') FROM rdb$database;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 18h40   #9
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 260
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 260
Points : 3 582
Points : 3 582
Citation:
Envoyé par a.fortuny Voir le message
Installation de Firebird 2.1.3 en mode manuel (fichier zip)
les runtimes MSVC ont été installé sur cette machine ?
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 09h43   #10
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Dans tout ce qui suit, Firebird a été (re-)installé via l'exe comme service sous un utilisateur ayant les droits d'administrateur (celui demandé lors de l'installation de W7).
FB a été testé pour l'exécution et fonctionne bien quand il n'y a pas d'accès aux fonctions UDF dans une dll externe.
Le service a été ensuite désactivé et un shortcut a été crée sur fbguard.exe avec le paramètre -a pour un lancement comme application, lequel shortcut a été ensuite configuré pour être lancé comme administrateur. Les options de compatibilité ne sont pas activées, donc W7 32bits natif.

Citation:
Envoyé par Barbibulle Voir le message
Essayez de changer de firebird.conf
UdfAccess = Restrict c:\UDF
Créez le répertoire UDF à la racine de C et placez y application.dll
Arretez FB et relancez le.
OK tout fait
NB: l'ancien répertoire Firebird\UDF laissé tel quel mais sans Application.dll
Citation:
Envoyé par Barbibulle Voir le message
Normalement le
Code :
SELECT addYear('now',1) FROM rdb$database;
ne doit plus fonctionner puisque vous n'avez pas copié fbudf.dll dans c:\UDF
(permet de vérifier que le .conf à bien été pris en compte)
Que nenni: jusque là, ce query fonctionne toujours.
Par contre si je vide Firebird\UDF alors là, oui, le query ne fonctionne plus avec l'habituel message
invalid request BLR at offset 63.
function addYear is not defined.
module name or entrypoint could not be found.

Citation:
Envoyé par Barbibulle Voir le message
Enfin testez votre fonction :
Code :
SELECT CODE_SEMAINE ('now') FROM rdb$database;
Qui ne veut toujours pas fonctionner

Dernier test dérivé du vôtre:
- stop du serveur
- création de Firebird\UDF2
- déplacement des DLL de .\UDF --> .\UDF2, donc .\UDF est vide

dans Firebird.conf: UdfAccess = Restrict UDF2

relancer le serveur
Code :
SELECT addYear('now',1) FROM rdb$database;
donne l'erreur déjà bien connue

variante finale:
- stop du serveur
- on laisse tout tel quel
- copie des DLL de .\UDF2 --> .\UDF
- relancer le serveur
Code :
SELECT addYear('now',1) FROM rdb$database;
qui cette fois-ci fonctionne bien

dans toutes les variantes tous les queries faisant appel à une fonction de Appplication.dll ne sont pas connues.

Ces tests indiquent que:
1. le répertoire iniital .\UDF est hardcodé et constitue le défaut dans Firebird ce qu'indique le commentaire de UdfAccess
2. soit la définition de UdfAccess ne fonctionne pas quoique l'on y mette soit le ou les répertoires ne sont pas accessibles de Firebird pour une raison que j'ignore encore.
3. quel que soit le fichier dll ajouté au répertoire par défaut il semble ne pas être accessible
http://www.developpez.net/forums/ima...es/sacrain.gif

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 09h47   #11
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par makowski Voir le message
les runtimes MSVC ont été installé sur cette machine ?
En fait lors des premiers test avec 2.5, j'ai vu un répertoire Win32 qui contenait un .msi: à toutes fins utiles, je l'avais installé et n'a pas été desinstallé depuis lors.

Par précaution encore j'ai téléchargé et exécuté vcredist_x86.exe. Cela n'a rien changé aux résultats. Touts les tests de mon post précédent ont été réalisés après cette installation.

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 09h52   #12
Barbibulle
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 726
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 43

Informations forums :
Inscription : octobre 2002
Messages : 1 726
Points : 2 375
Points : 2 375
Citation:
Envoyé par a.fortuny Voir le message
Ces tests indiquent que:
1. le répertoire iniital .\UDF est hardcodé et constitue le défaut dans Firebird ce qu'indique le commentaire de UdfAccess
2. soit la définition de UdfAccess ne fonctionne pas quoique l'on y mette soit le ou les répertoires ne sont pas accessibles de Firebird pour une raison que j'ignore encore.
3. quel que soit le fichier dll ajouté au répertoire par défaut il semble ne pas être accessible
http://www.developpez.net/forums/ima...es/sacrain.gif

Antonio.
Avez vous bien enlevé le # en début de ligne devant le UdfAccess = ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 10h07   #13
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Barbibulle Voir le message
Avez vous bien enlevé le # en début de ligne devant le UdfAccess = ?
Oui.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 10h38   #14
Barbibulle
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 726
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 43

Informations forums :
Inscription : octobre 2002
Messages : 1 726
Points : 2 375
Points : 2 375
A croire que ce n'est pas le bon firebird.conf ou bien qu'il n'arrive pas à le lire (vous fermez l'éditeur de firebird.conf avant de tester ?).

Sinon avez vous essayé de renommer votre application.dll en app.dll (nom de moins de 8 lettres).

Et de vérifier le nom dans une fenetre "cmd". (histoire d'être certain que ce n'est pas un app.dll.dll). (oubien de renommer avec un .bat comme celui en dessous)


Code renomer.bat :
1
2
move application.dll app.dll
pause

Puis de refaire la déclaration

Code :
1
2
3
4
DECLARE EXTERNAL FUNCTION CODE_SEMAINE
TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'CodeSemaine' MODULE_NAME 'app.dll';
Et de re-tester
Code :
SELECT CODE_SEMAINE ('now') FROM rdb$database;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 11h21   #15
a.fortuny
Invité de passage
 
Antonio Fortuny
Inscription : avril 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Antonio Fortuny

Informations forums :
Inscription : avril 2010
Messages : 10
Points : 0
Points : 0
Citation:
Envoyé par Barbibulle Voir le message
A croire que ce n'est pas le bon firebird.conf ou bien qu'il n'arrive pas à le lire (vous fermez l'éditeur de firebird.conf avant de tester ?).
Oui

Citation:
Envoyé par Barbibulle Voir le message
Sinon avez vous essayé de renommer votre application.dll en app.dll (nom de moins de 8 lettres).
oui

Citation:
Envoyé par Barbibulle Voir le message
Et de vérifier le nom dans une fenetre "cmd". (histoire d'être certain que ce n'est pas un app.dll.dll). (oubien de renommer avec un .bat comme celui en dessous)
oui et en
Code :
runas /user:administrator cmd
Citation:
Envoyé par Barbibulle Voir le message
Code renomer.bat :
1
2
move application.dll app.dll
pause
Exécuté en ligne de commande

Citation:
Envoyé par Barbibulle Voir le message
Puis de refaire la déclaration

Code :
1
2
3
4
DECLARE EXTERNAL FUNCTION CODE_SEMAINE
TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'CodeSemaine' MODULE_NAME 'app.dll';
Et de re-tester
Code :
SELECT CODE_SEMAINE ('now') FROM rdb$database;
même réponse, y compris si "[...]ENTRY_POINT 'CodeSemaine' MODULE_NAME 'app'

Antonio.
a.fortuny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 11h43   #16
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 260
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 260
Points : 3 582
Points : 3 582
c'est la dll qui doit avoir un probleme du genre une dépendance manquante

de toutes façons, franchement les UDF, il est préférable de s'en passer
mais c'est une autre débat
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 13h02   #17
man333
Invité de passage
 
Inscription : avril 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 2
Points : 1
Points : 1
Par défaut gds32

Après m'être cassé la tête sur le même problème, je l'ai résolu de la manière suivante : copier la gds32.dll dans le répertoire Windows. Apparamment cette dll est nécessaire. Merci de me dire si celà fonctionne pour vous.
David
man333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 16h22   #18
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 260
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 260
Points : 3 582
Points : 3 582
oui c'est forcément une dépendance manquante pour l'udf
comment est construite cette udf ?

cela peut être une dépendance aussi à ib_util.dll
essayez en mettant le répertoire bin de firebird dans le path

ceci dit, franchement il faut au maximum eviter les udf, ne serait ce que pour être plus portable

la règle avec les udf surtout maison c'est de d'abord tout faire pour ne pas en utiliser, cela évite bien des ennuis et est plus performant et dans 90% au moins des cas d'utilisation d'udf que je vois, on peut très bien s'en passer
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web