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 :

Fonction Trim inconnu


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut Fonction Trim inconnu
    Bonjour

    Je voudrais enlever les espaces en fin de champs et toutes les instructions suivantes testées sur une DB Firebird 1.5 via l'éditeur SQL de ibexpert donnent le message function unknown.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct trim(RefCadCle) from "TableBien"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct rtrim(RefCadCle) from "TableBien"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT distinct ltrim(RefCadCle) from "TableBien"
    Pourtant, d'après la doc, les deux dernières fonctions au moins devraient être en standard dans firebird.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Les fonctions RTRIM et LTRIM sont des UDFs contenues dans ib_udf.dll.

    @+ Claudius

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Mon application, qui tourne sous Delphi, installe Firebird comme service.
    Ce service est bien entendu fermé avec mon application.

    Comme ExecSql de l'instruction en question débouche sur une erreur, je ne ferme pas mon application pour que Firebird reste actif, j'ouvre IbExpert et je l'exécute avec le même résultat.

    Je ne pense dès lors pas avoir la maitrise de l'utilisation de fbudf.dll.

  4. #4
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Les fonctions UDFs doivent être définies pour chacune de tes bases de données qui les utilisent.

    Depuis IBExpert pour ta base de données tu définis une nouvelle UDF.
    Pour exemple voici la définition de la fonction RTRIM:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE EXTERNAL FUNCTION RTRIM
        CSTRING(255)
    RETURNS CSTRING(255) FREE_IT
    ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf'
    [edit] dans le sous-dossier UDF de ton install Firebird, tu as des scripts tout prêts qui déclarent les fonctions à ta place. [/edit]

    @+

  5. #5
    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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Citation Envoyé par defluc
    Mon application, qui tourne sous Delphi, installe Firebird comme service.
    Ce service est bien entendu fermé avec mon application.
    et c'est quoi l'interêt de fermer le service ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    L'intérêt de fermer le service, c'est de ne pas maintenir une machine encombrée alors que ce n'est pas nécessaire puisque l'application appelante est elle même fermée.

    Pour le reste, l'UDF est définie mais son appel génère le message d'erreur suivant
    Unsuccessful execution caused by a system error that precludes
    successful execution of subsequent statements.
    Access to UDF library "FbUDF.DLL" is denied by server administrator.
    , ce qui est logique puisque IBexpert ignore où se trouve la dll.

    Y-a-t-il un répertoire par défaut où cette dll pourrait être copiée lors de l'installation de l'application.

  7. #7
    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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    je maintiens, aucun intéret le service dans ce cas
    il vaut mieux utiliser la version embeded si c'est pour faire du mono poste
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  8. #8
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Mon intention est la mise au point en monoposte et le passage à une version client/serveur plus tard.

    A part cela, je reste sur mon petit problème de dossier par défaut de la dll.

    J'ai mis
    UdfAccess = Restrict [MyApp]\udf
    dans Firebird.conf et le fichier FbUdf.dll est bien dans ce dossier j'ai toujours l'erreur de mon précédent post.

  9. #9
    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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    passons sur monoposte ou pas et lancer ou pas le service qui reste n'importe quoi, de toutes façons Firebird est du client serveur même en monoposte

    sur ton udf quel OS ?
    comment l'installation a t elle été faite ?
    manifestement c'est un simple problème de droits
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  10. #10
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Actuellement, je tourne sous Windows XP Pro.
    L'installation se fait par copie de l'application et de la base de données dans le répertoire choisi via la boite de dialogue de Inno Setup.
    Puis, Inno Setup copie sous ce répertoire, les dossiers Bin, Intl et Udf de Firebird ainsi que FbClient dans le répertoire Sytem.

  11. #11
    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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    cette manière de faire correspond exactement à la version embeded bien plus simple à déployer et n'oblige pas à lancer un service
    donc je persiste à dire que s'amuser à gérer un service est idiot

    vraiment c'est un problème de droit d'acces via l'OS à la dll rien de plus
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

Discussions similaires

  1. Portage d'une base : Fonction "TRIM" inconnu
    Par com-ace dans le forum Access
    Réponses: 1
    Dernier message: 26/11/2007, 22h01
  2. Réponses: 3
    Dernier message: 07/09/2005, 09h55
  3. fonction trim
    Par didier.cabale dans le forum SQL
    Réponses: 3
    Dernier message: 25/01/2005, 10h15
  4. Equivalent de la fonction trim
    Par PCHINK dans le forum C
    Réponses: 6
    Dernier message: 21/03/2004, 18h02
  5. Fonction port Inconnue...
    Par Nounours666 dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2002, 17h31

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