Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec 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 25/06/2012, 21h01   #1
mballasse
Invité de passage
 
Homme Michel BALLASSE
Responsable de projet fonctionnel
Inscription : juillet 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Michel BALLASSE
Âge : 45
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juillet 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à mballasse
Par défaut quel SQLDialect choisir ?

Je dois effectuer la migration d'une base de données Interbase => Firebird 2.5

J'ai recrée ma nouvelle base Firebird 2.5 en SQLDialect 3.

Or si cela ne me pose pas de souci sous mon application Delphi car j'utilise FIBPlus, je rencontre d'énormes problèmes sous XMLRad où seuls les middlewares suivants sont disponibles : FIB (FreeIBComponents), IBX et DBX. Or il semble que le SQLDIalect soit mal pris en compte

Que puis je faire ?

Y a t il des conséquences notoires à repasser en SQLDialect 1 ?

Merci pour votre aide.
mballasse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2012, 08h21   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 269
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 269
Points : 7 529
Points : 7 529
Pour répondre à la question , je dirais : "sans conteste SQLDialect 3"

Pour ce qui est des conséquences a repasser en SQLDialect 1 elles sont nombreuses et pénalisantes par exemple : les Dates

J'ai encore quelques bases en SQLDialect 1 version 2.1 et me trouve souvent confronté a des problèmes de fonctions non implémentées avec un message du genre : "Fonction non supportée avec en Dialect 1" , même certains CASTs m'ont posés des soucis

Quant à XMLrad , je dois avouer que je n'ai jamais accroché
__________________
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 26/06/2012, 09h27   #3
mballasse
Invité de passage
 
Homme Michel BALLASSE
Responsable de projet fonctionnel
Inscription : juillet 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Michel BALLASSE
Âge : 45
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juillet 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à mballasse
Oui je comprends bien sauf que pour XMLRad, je n'ai pas d'autres solutions, il y a un énorme existant

Quelle sont ces conséquences "pénalisantes" sur les dates citées en référence ?

Donc concrètement je fais quoi ?
mballasse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2012, 10h28   #4
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 269
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 269
Points : 7 529
Points : 7 529
Citation:
Envoyé par mballasse Voir le message
Quelle sont ces conséquences "pénalisantes" sur les dates citées en référence ?
Toutes les dates seront en datetime
je n'ai plus en tête les fonctions qui m'ont coincé par contre je me souviens d'un cast récent du genre calcul du montant TVA genre : CAST(MONTANT*TAUX_TVA/100 AS NUMERIC(15,2)) qui m'a posé des soucis
De même bien sur que les CAST(unedate AS DATE) qui me gardait toujours l'heure

voici un extrait trouvé sur les différences SQLDialect
Citation:

Dialect 1 stores date and time information in a DATE data type and has a TIMESTAMP data type which is identical to DATE. Double quotes are used to delimit string data. The precision for NUMERIC and DECIMAL data types is less than a dialect 3 database and if the precision is greater than 9, Firebird stores these as DOUBLE PRECISION. INT64 is not permitted as a data type.

Dialect 2 is available only on the Firebird client connection and cannot be set in the database. It is intended to assist debugging of possible problems with legacy data when migrating a database from dialect 1 to 3. This dialect cannot be set for a database using gfix. (See below.)

Dialect 3 databases allow numbers (DECIMAL and NUMERIC data types) to be stored as INT64 when the precision is greater than 9. The TIME data type is able to be used and stores time data only. The DATE data type stores on date information. Double quotes can be used but only for identifiers that are case dependent, not for string data which has to use single quotes.
ce qui peut donner des trucs cocasses aussi c'est un select 1/3 from rdb$database voir ce lien

[Edit]
une autre différence : les générateurs 32 bits en dialect, 1 64 bits en 3

je suis sur que si Makowsky nous lit il va nous pointer le lien précis de toutes les différences

[Edit]
pour XMLRad , une petite recherche dans ce forum donne ceci
__________________
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 26/06/2012, 16h03   #5
mballasse
Invité de passage
 
Homme Michel BALLASSE
Responsable de projet fonctionnel
Inscription : juillet 2010
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Michel BALLASSE
Âge : 45
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Responsable de projet fonctionnel
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juillet 2010
Messages : 21
Points : 0
Points : 0
Envoyer un message via Skype™ à mballasse
Ok merci pour tous ces éléments de réponse.

Mais je ne comprends pas bien alors l'intérêt de passer en SQLDialect 3 si 1/3 = 0 au lieu 0.333333333

Affaire à suivre donc.
mballasse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2012, 16h29   #6
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 269
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 269
Points : 7 529
Points : 7 529
Citation:
Envoyé par mballasse Voir le message
Mais je ne comprends pas bien alors l'intérêt de passer en SQLDialect 3 si 1/3 = 0 au lieu 0.333333333
SELECT 1/3 FROM RDB$DATABASE ->0

SELECT 1.00/3 FROM RDB$DATABASE -> 0.33

SELECT 1.00/3.00 FROM RDB$DATABASE ->0.3333

C'est juste qu'il faut faire attention
__________________
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 09h06.


 
 
 
 
Partenaires

Hébergement Web