IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Firebird Discussion :

Fonction UDF non reconnu sur un poste client


Sujet :

Firebird

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut Fonction UDF non reconnu sur un poste client
    Bonjour,

    j'ai un progiciel client / serveur écrit sous delphi, utilisant firebird 1.5

    Dans une procédure stockée, j'utilise la fonction round qui est incluse dans sous dossier UDF de firebird sur mon serveur (c:\MonAppliServeur\firebird_1_5\UDF).

    c:\MonAppliServeur est partagé.
    La base est stockée dans c:\MonAppliServeur\données\mabase.gdb

    Quand je lance mon aplli sur le serveur, pas de soucis, ma procédure stocké, avec ma fonction UDF passe bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT round(((CRT_NB - COALESCE(CRT_NB_GRATUIT,0)) * CRT_PRIX),2) MONTANT FROM CARTE_CRT ....

    J'ai un poste client, dont mon exécutable ( le même que sur le serveur) est installé dans un dossier c:\MonAppliClient, accompagné de fbclient.dll, qui se connect avec les bons chemins sur mon serveur.
    La connection à base de données est ok, mon logiel fonctionne correctement et execute mes ordres SQL sans soucis, SAUF ma procédure stocker qui me renvoi le message habituel de la fonction UDF non trouvé :

    invalid request BLR at offset 553 : function ROUND is not defined. module name or entrypoint could not be found.
    Evidemment, quand je regarde dans ma BDD, la fonction ROUND existe bien (en plus, elle marche sur le serveur).

    J'ai ce pb chez plusieurs de nos clients, alors que la même installation fonctionne chez d'autres clients (et dans nos bureau evidemment)

    je ne sais plus trop ou regarder !

    Cordialement
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    il doit manquer des runtimes C++
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    c'est a dire ?

    j'ai peut être une info de plus, le serveur est un windows 7, pas le poste client ....

    Cordialement
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    Citation Envoyé par obione Voir le message
    c:\MonAppliServeur est partagé.
    quelle idée !
    surtout pas partager le répertoire où se trouve la base

    Citation Envoyé par obione Voir le message
    J'ai un poste client, dont mon exécutable ( le même que sur le serveur) est installé dans un dossier c:\MonAppliClient, accompagné de fbclient.dll, qui se connect avec les bons chemins sur mon serveur.
    cad, c'est quoi tes chaines de connection ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    1> permet de lancer un executable sur le serveur a partir du poste client qui installe automatiquement le poste client !


    2> sur le serveur :
    dans un c:\installserveur,
    - mon appli
    - un param.ini avec les chemin d'accès a la base
    - un sous répertoire firebird_1_5 avec l'install de firebird, avec des sous répertoires UDF .....
    - un sous répertoires donnée avec ma GDB
    - fbclient.dll
    - firebird.msg
    - gds32.dll (copie de fbclient.dll) dans c:\windows\system32
    - msvcr71.dll
    ...
    -> L'appli fonctionne correctement sur le serveur

    sur mon client:
    dans un c:\installclient,
    - mon appli
    - un param.ini avec les chemin d'accès a la base (\\MonServeur\C:\installserveur\donnees\)
    - fbclient.dll
    - firebird.msg
    - gds32.dll (copie de fbclient.dll) dans c:\windows\system32
    - msvcr71.dll
    ...
    -> L'appli fonctionne correctement sur le client dans tous les cas, et mes fonctions UDF dans 98% des cas. reste les 2 % ou j'ai le message de ma fonction UDF non trouvée !
    si je rappatrie la base sur une autre installation, c'est ok
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  6. #6
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    un param.ini avec les chemin d'accès a la base (\\MonServeur\C:\installserveur\donnees\)
    mon dieu quelle horreur

    ta chaine de connexion DOIT être SERVEUR:base
    avec serveur le nom de la machine ou son adresse ip
    donc : MonServeur:C:\installserveur\donnees\mabase.fdb

    utilise TCP/IP, tu ne t'en portera que mieux
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    Je me connecte via delphi et les composant TSQLConnexion et le chemin a fournir est bein du type \\MonServeur\C:\installserveur\donnees\mabase.gdb !

    Je n'arrive d'ailleurs pas a me connecter en tuilisant votre notation
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  8. #8
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    ben avec Delphi 6 le code suivant est sans problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     SQLConnection1.Params.Values['Database'] := 'localhost:employee';
     SQLConnection1.Connected:=true;
     SQLConnection1.Connected:=false;
     SQLConnection1.Params.Values['Database'] := '127.0.0.1:employee';
     SQLConnection1.Connected:=true;
     SQLConnection1.Connected:=false;
     SQLConnection1.Params.Values['Database'] := '127.0.0.1:C:\FB21\examples\empbuild\employee.fdb';
     SQLConnection1.Connected:=true;
     SQLConnection1.Params.Values['Database'] := 'monserveur:C:\FB21\examples\empbuild\employee.fdb';
     SQLConnection1.Connected:=true;
    avec bien sur les dns correctement configuré, c'est à dire qu'un réponde correctement
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    Le ping fonctionne bien, mais je ne me connecte pas avec votre solution, c'est dingue ça :



    dbmain.ConnectionName:= 'IBConnection';
    dbmain.DriverName:= 'Interbase';
    dbmain.GetDriverFunc:='getSQLDriverINTERBASE';
    dbmain.LibraryName:='dbxint30.dll';
    dbmain.VendorLib := 'FBCLIENT.DLL'

    dbMain.Params.Values['Database'] := '\\MonServeur\C:\installserveur\donnees\mabase.gdb';
    dbmain.Params.Values['USER NAME'] := 'SYSDBA';
    dbmain.Params.Values['PASSWORD'] := 'masterkey';
    dbmain.Params.Values['SQLPASSTHRU MODE'] := 'SHARED AUTOCOMMIT';
    dbmain.Params.Values['SQLDIALECT'] := '3';
    ça ne fonctionne que comme ça ...
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  10. #10
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    hum
    tu utilise bien un serveur Firebird, pas la version embeded ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    oui, d'ailleurs, je ne connaissais pas, je l'ai découvert en fouillant sur le net pour réoudre mon pb.
    C'est une installation classique de firebird, si ce n'est que je l'execute avec l'option silencieuse puisqu'elle est intégrée au reste de l'installation de mon appli via istool !

    Mais bon, vu que ça commence a me saouler, je pense que je vais laisser la fonction UDF Round de coté dans ma procédure stocké, et passer par un bon vieux cast qui me donnera le même résultat pour mon besoin !

    merci de m'avoir aider a chercher en tout cas
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

  12. #12
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    Citation Envoyé par obione Voir le message
    o
    Mais bon, vu que ça commence a me saouler, je pense que je vais laisser la fonction UDF Round de coté dans ma procédure stocké, et passer par un bon vieux cast qui me donnera le même résultat pour mon besoin !
    et ce sera bien plus efficace en terme de ressources utilisées
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 106
    Points : 59
    Points
    59
    Par défaut
    tant mieux !

    merci pour tout
    Delphi 6 entreprise & interbase 6

    Bonne journée 8)

    Tout programme non trivial contient au moins un bug.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/12/2011, 10h01
  2. Réponses: 2
    Dernier message: 25/09/2007, 15h55
  3. Appeler un programme sur le poste client avec <object>
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 14h40
  4. [Forms5]ouvrir un executable sur un poste client
    Par anthony8 dans le forum Forms
    Réponses: 2
    Dernier message: 30/06/2005, 14h26
  5. [CR10][ASP.NET]Impression sur le poste Client
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/04/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo