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

Bases de données Delphi Discussion :

DB Firebird - Fonction inconnue à partir d'une application Delphi.


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut DB Firebird - Fonction inconnue à partir d'une application Delphi.
    Bonjour,

    Je teste la requête suivante dans IBExpert où elle fonctionne parfaitement.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select distinct NOM from "TableProprio" where
    Lower(NOM) like Lower('%COUR%') order By NOM
    Exécutée dans une application en Delphi, un message d'erreur fatale m'est renvoyé :
    SQL Error: Dynamic SQL Error SQL error code = @1 Function unknown @1. Error Code: -804
    S'agissant de la même base de données, je ne m'explique pas pourquoi cette requête me révèle que «Lower» est une fonction inconnue alors que ce n'est pas le cas dans IBExpert.

    Je remercie d'avance celui qui aurait une explication.

  2. #2
    Membre chevronné
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Billets dans le blog
    4
    Par défaut la réponse est là
    Bonjour,

    je ne comprends pas tout, mais je pense que ta réponse peut être ici : https://firebirdsql.org/refdocs/lang...udf-lower.html

    Cordialement

    André

  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 : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Désolé mais la création d'une fonction alternative n'y change rien.
    Merci quand même.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 604
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    à mon avis le problème ne vient pas de Firebird la fonction interne LOWER est connue et fonctionne correctement

    mais des composants utilisés (lesquels ?) pour la requête,

    ceci étant la requête elle même est améliorable
    Select distinct NOM from "TableProprio" where Lower(NOM) like Lower('%COUR%') order By NOM
    Questions :
    pourquoi un nom de table avec de " " s'il s'agit de Firebird ?
    pourquoi un Lower('%COUR%') alors que '%cour%' fait aussi bien l'affaire ?
    pourquoi un distinct et un order by ?
    de quelle version de Firebird parle t-on ?

    pourrait devenir
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Select NOM from TableProprio where LOWER(NOM) SIMILAR TO '%cour%' group by NOM
    en jouant sur le CHARSET et la COLLATION de nom on doit même pouvoir éviter le LOWER mais là ça c'est une autre histoire

  5. #5
    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 : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    C'est pour répondre à une demande d'un ancien client dont les données sources ont changé de format que j'ai dû remettre les mains dans le cambouis.
    Je n'ai plus programmé depuis plus de 15 ans et j'avais oublié l'existence de «SIMILAR».
    La base de données plus ancienne encore est sous Firebird 1.5, version de l'époque, et j'utilise un TZQuery de Zeos.
    J'ai essayé de la convertir mais FDBConvert me renvoie
    20:08:22: Copying database file:
    (D:\ProgramsSources\Delphi4\CadacomCsvData\CadaCom.Fdb >> D:\ProgramsSources\Delphi4\CadacomCsvData\CadaCom_CONVERT_COPY.fdb)
    20:08:43: Checking database for corruption
    20:08:57: Checking NOT NULL fields for NULL values

    20:08:57: NULL values in NOT NULL columns has been detected
    Dynamic SQL Error
    SQL error code = -204
    Table unknown
    MAPMINMAX
    At line 1, column 25
    J'ai supprimé et recréé cette table mais l'erreur subsiste.
    De toute façon, le problème n'est pas là mais effectivement dans la source Delphi.

    Un grand merci pour la simplification.
    Pour les guillemets qui encadrent le nom de la table, c'est IBExpert qui les ajoute automatiquement.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 604
    Billets dans le blog
    65
    Par défaut
    Re,


    pour la convertir en fb2.5 il vaut mieux faire un backup avec la version 1.5 puis restaurer avec la version 2.5
    mais pour les contraintes c'est autre chose ....

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

Discussions similaires

  1. Appel d'Internet à partir d'une application Delphi
    Par JP.NUAGE dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/06/2008, 10h52
  2. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  3. compresser un fichier à partir d'une application
    Par Julian21 dans le forum C++
    Réponses: 6
    Dernier message: 20/06/2007, 22h32
  4. Lancement de Outlook à partir d'une application Delphi
    Par meghaoui dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/02/2007, 13h37
  5. [Print]Imprimer a partir d'une application web
    Par Chiabni dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/01/2006, 13h02

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