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

SQL Firebird Discussion :

Pb de creation UDF sous Delphi


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut Pb de creation UDF sous Delphi
    Bonjour a tous

    J'essaye de creer des UDF sous Delphi pour les utiliser sous FIREBIRD 2.0 (en utilisant le modele trouve sur : http://www.firebirdsql.org/index.php...&id=geldenhuis)

    Voici le code delphi :
    La libraire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    library UDF_Olivier;
     
    uses
      UDF in 'UDF.pas';
     
    {$R *.res}
     
    exports
       UDF_Test,
       UDF_Test1;
    begin
    end.
    et l'unite associee est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    unit UDF;
     
     
    interface
    uses
      SysUtils,
      Classes;
     
     
    function UDF_Test(var
    Width,Height:Integer):Integer; stdcall;
     
    function UDF_Test1(var
    Entree:pChar):pChar;  stdcall;
     
    implementation
    function UDF_Test(var
    Width,Height:Integer):Integer;
    begin
       Result:=Width+Height;
    end;
     
    function UDF_Test1(var
    Entree:pChar):pChar;
    begin
       Result := Pchar(UpperCase(String(Entree)));
    end;
     
    end.
    La compilation ne pose pas de probleme et je stocke la DLL generee dans le repertoire 'UDF' de Firebird

    Je declare l'UDF (test1) dans ma base avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DECLARE EXTERNAL FUNCTION TEST1
      CSTRING(80) CHARACTER SET NONE
    RETURNS CSTRING(80) CHARACTER SET NONE
    ENTRY_POINT 'UDF_Test' MODULE_NAME 'UDF_Olivier.dll';
    Mais lorsque j'essaye d'utiliser cette fonction dans une requete ou PS (ex :

    select test1(b_bagueur.prenom) from b_bagueur

    qui devrait afficher le prenom en majuscule m'indique
    Invalid token.
    Invalid request BLR at offset 79.
    Function TEST1 is not defined.
    Module name or entrypoint could not be found.

    Quelqu'un a t'il une idee ?

    merci d'avance

    Olivier

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Est-ce une erreur de frappe, car l'ENTRY_POINT ne devrait-il pas être 'UDF_Test1' ?

    De plus j'ajouterais un FREE_IT sur le RETURNS CSTRING.

    @+ Claudius

  3. #3
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Grrr on ne verifie jamais assez ses messages

    Il y a bien une faute d'orthographe.

    J'ai modifie par reference en FEEE_IT et ca ne change rien !!

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    A priori je ne vois pas de problème.

    As-tu testé ta DLL avec un petit exe test sous Delphi ? Pour s'assurer que tes 2 fonctions sont correctes.

    As-tu vérifié le paramètre UDFAccess de firebird.conf qu'il ne soit pas sur None. Des fois que ...

    @+ Claudius

  5. #5
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Je vais tester les 2 fonctions, mais je vois peu de raisons quelles ne marchent pas ...

    pour le firebird.conf

    c'est ecrit
    #udfAccess = Restrict UDF
    est ce un Pb ?

    ----
    J'ai teste les fonctions : pas de PB

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    est ce un Pb ?
    C'est l'option par défaut, l'accès aux UDFs est restreint au sous-dossier UDF de Firebird. Donc c'est OK.

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

Discussions similaires

  1. creation d'une OBB sous delphi
    Par seb_131 dans le forum OpenGL
    Réponses: 1
    Dernier message: 18/04/2009, 15h56
  2. creation une application Dos sous delphi!!
    Par sofiane44 dans le forum EDI
    Réponses: 3
    Dernier message: 26/12/2005, 16h35
  3. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  4. calcul sous delphi
    Par djedje-08 dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2003, 17h39
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

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