Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/06/2012, 18h13   #1
frantzgac
Membre du Club
 
Inscription : juillet 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 216
Points : 69
Points : 69
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
frantzgac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2012, 18h20   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 217
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 217
Points : 7 284
Points : 7 284
Quand on disait que les IBX n'était pas recommandé pour se connecter aux bases 2.1 ou 2.5
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2012, 18h28   #3
frantzgac
Membre du Club
 
Inscription : juillet 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 216
Points : 69
Points : 69
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++ ?
frantzgac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2012, 07h27   #4
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 217
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 217
Points : 7 284
Points : 7 284
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

Citation:
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
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2012, 10h19   #5
frantzgac
Membre du Club
 
Inscription : juillet 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 216
Points : 69
Points : 69
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.
frantzgac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2012, 12h23   #6
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 217
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 217
Points : 7 284
Points : 7 284
Citation:
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 +
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h01.


 
 
 
 
Partenaires

Hébergement Web