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 :

EDivByZero exception avec COLLATE FR_FR


Sujet :

SQL Firebird

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut EDivByZero exception avec COLLATE FR_FR
    Bjr

    Je rencontre une difficulté avec la clause COLLATE FR_FR lorsque :

    1 celle ci est placée dans le DDL de construction d'un champ de table
    ou
    2 celle ci est placée dans la requête SQL select pour un champ de table

    A l'ouverture de la table (IBTable ou IBDataSet) une exception EDivByZero apparait.

    Le problème se manifeste sous Firebird 2.1 et Firebird 2.5 avec Rad Studio Codegear 2009 sous Delphi ou C++.

    Il disparait avec les versions antérieures Delphi 7 ou C++ Builder 6.

    Enfin si au lieu d'utiliser les IBX j'utilise les composants DBExpress le problème disparait.

    Je précise que la base est créée avec le Default Character Set ISO8859_1.

    (Sous Windows Seven)

    Ici une description détaillée en anglais

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Quand on disait que les IBX n'était pas recommandé pour se connecter aux bases 2.1 ou 2.5
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Je l'ignorais puisque cela fonctionnait parfaitement jusqu'à ce que je passe en Delphi / C++ 2009.

    Quelles sont les préconisations pour accéder à Firebird 2.x depuis Delphi ou C++ ?

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Je l'ignorais puisque cela fonctionnait parfaitement jusqu'à ce que je passe en Delphi / C++ 2009.
    et donc l'Unicode <- c'est ce qui fait la différence

    Quelles sont les préconisations pour accéder à Firebird 2.x depuis Delphi ou C++ ?
    Delphi et C++
    N'oublions pas bien sur les DBExpress des versions (Entreprise) récentes de XE , (beaucoup d'améliorations , fortement recommandé pour du DataSnap) pour D2009 je ne sais pas , pour D2010 j'ai pas pu tester (par méconnaissance j'avais pris la version Pro , je m'en mord encore les doigts )


    DELPHI , d'expérience
    Solutions free
    Le nec (bien qu'un peu limitée a mon gout car ReadOnly ) les UIB
    pour ceux habitués a BDE , un BDELike : les ZEOSDBO , un peu bugués mais la version SVN fonctionne a peu près (sauf pour BDD en UTF8 , a mon dernier pointage)
    Solutions Payantes :
    FibPlus (une rolls lorsque j'ai fait mes essais)
    IbObjects ? (jamais reussi une install correcte de la version essai)

    C++
    Aucune idée , mais je crois avoir vu des posts sur le sujet dans ce forum
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Je suis un peu étonné. Après un peu de recherches :

    Sur le site d'embarcadero on parle d'Interbase (logique commerciale) mais on y trouve des tutoriels laissant entendre que les composants DBExpress peuvent servir à se connecter à "d'autres" bases depuis Delphi ou C++ Builder 2009 (Rad Studio 2009).

    Ici

    ou sur ce forum

    http://evaris-ngouzo.developpez.com/...ird-dbexpress/

    Cela dit la procédure semble un peu lourde...

    Car depuis plus de 12 ans je conçois des applications Delphi5 puis Delphi 7 ou C++ Builder 6 avec les composants IBX et des bases parfois très touffues sans aucun problème.

    Je suis donc surpris d'apprendre par plusieurs sources que ce que je fais "n'est pas possible".

    J'ai d'ailleurs contourné le problème occasionné par les champs comportant une clause COLLATE FR_FR qui causait le EDivByZero en siphonnant la base dans une autre base où la clause COLLATE est globalisée par un ALTER comme on le suggère ici. Du coup la base Firebird 2.5 (ODS 11.1) fonctionne sous C++ Builder 2009 ou Delphi 2009. Mais le portage n'est pas achevé (pour cause d'Unicode mais pas seulement) je ne peux encore garantir que tout fonctionne. Cependant j'accède indubitablement à la base en lecture/écriture sans difficultés apparentes.

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Je suis donc surpris d'apprendre par plusieurs sources que ce que je fais "n'est pas possible".
    en quoi ?
    Il est très possible de se connecter avec des IBxxxxxxx sur Firebird .
    Les seules limitations des vieilles versions sont sur des connexions a Firebird 2.1 et plus (quelques rares bugs mais gênants , tu en as eu la preuve) . Je dois avouer ne pas voir essayé avec D2010 .
    Pourquoi ne le conseille t-on pas , tout simplement parce que plus les versions changent (depuis le tronc commun) entre Interbase et Firebird plus les dlls et donc plus les accès a ces dernières vont différer.

    quant à DBExpress il a été refondu en 2009 (ou pour D2009) et est beaucoup plus "performant" qu'avant , le seul hic , avoir la bonne version de Delphi c'est a dire Entreprise et +
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Différence entre character set, collate FR_FR
    Par AlexB59 dans le forum Débuter
    Réponses: 3
    Dernier message: 17/05/2014, 16h13
  2. Réponses: 2
    Dernier message: 14/02/2005, 14h26
  3. Réponses: 3
    Dernier message: 09/11/2004, 14h43
  4. INSO Filter : "USER-defined exception" avec ctx_do
    Par Wiztiti dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2004, 16h14
  5. Problème avec COLLATE FR_FR
    Par nico27 dans le forum SQL
    Réponses: 4
    Dernier message: 27/02/2004, 13h20

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