Auteur Sujet: Bug de Firebird 1.5?[résolu]  (Lu 6190 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« le: 24 Août 2006 à 09:42:36 »
Bonjour,

Quelqu'un pourrait-il essayer le script suivant dans un requêteur comme IBOConsole, IBexpert, IBEasy+... un requêteur capable de modifier la structure de la base (pas uniquement les données comme le BOA).COMMIT WORK;

SET AUTODDL OFF;

SET TERM ^ ;



CREATE PROCEDURE "PROC_ETAT_EVENEMENTS_SANS_TRI"

(

  "I_DOSSIER" INTEGER

)

RETURNS

(

  "DATE_EVE" VARCHAR(100) CHARACTER SET ISO8859_1,

  "CP" VARCHAR(10) CHARACTER SET ISO8859_1,

  "VILLE" VARCHAR(50) CHARACTER SET ISO8859_1,

  "S_TYPE" VARCHAR(5) CHARACTER SET ISO8859_1,

  "NOM" VARCHAR(40) CHARACTER SET ISO8859_1,

  "PRENOM" VARCHAR(60) CHARACTER SET ISO8859_1,

  "NOM_COMPLET" VARCHAR(160) CHARACTER SET ISO8859_1,

  "SEXE" INTEGER,

  "DATE_YEAR" INTEGER,

  "DATE_MOIS" INTEGER,

  "DATE_DATE" DATE

)

AS

BEGIN EXIT; END ^





ALTER PROCEDURE "PROC_ETAT_EVENEMENTS_SANS_TRI"

(

  "I_DOSSIER" INTEGER

)

RETURNS

(

  "DATE_EVE" VARCHAR(100) CHARACTER SET ISO8859_1,

  "CP" VARCHAR(10) CHARACTER SET ISO8859_1,

  "VILLE" VARCHAR(50) CHARACTER SET ISO8859_1,

  "S_TYPE" VARCHAR(5) CHARACTER SET ISO8859_1,

  "NOM" VARCHAR(40) CHARACTER SET ISO8859_1,

  "PRENOM" VARCHAR(60) CHARACTER SET ISO8859_1,

  "NOM_COMPLET" VARCHAR(160) CHARACTER SET ISO8859_1,

  "SEXE" INTEGER,

  "DATE_YEAR" INTEGER,

  "DATE_MOIS" INTEGER,

  "DATE_DATE" DATE

)

AS

begin

   /*---------------------------------------------------------------------------

   Copyright Philippe Cazaux-Moutou. Tout droits réservés.

   Créé le : 31/07/2001

   à : 19:07:26

   Modifiée le :23/08/2006 par André: ajout des ev_fam

   à : :

   par :

   Description : Cette procedure permet de récuperer tous les evements

                 d'un dossier

   Usage       :

   ---------------------------------------------------------------------------*/

   FOR SELECT e.ev_ind_date_writen,

              e.EV_IND_CP,

              e.EV_IND_VILLE,

              e.EV_IND_TYPE,

              i.NOM,

              i.PRENOM,

              EVE.REF_EVE_LIB_LONG || ' : de ' || i.NOM || ', ' || i.PRENOM,

              i.sexe,

              e.ev_ind_date_year,

              e.ev_ind_date_mois,

              e.ev_ind_date

          FROM EVENEMENTS_IND e

               inner join INDIVIDU i on i.cle_fiche=e.EV_IND_KLE_FICHE

               inner join REF_EVENEMENTS EVE on EVE.REF_EVE_LIB_COURT=e.EV_IND_TYPE

          WHERE i.KLE_DOSSIER = :I_DOSSIER

       UNION

       SELECT e.ev_fam_date_writen,

              e.EV_FAM_CP,

              e.EV_FAM_VILLE,

              e.EV_FAM_TYPE,

              '',

              '',

              SUBSTRING(EVE.REF_EVE_LIB_LONG||' : de '||m.NOM||', '||m.PRENOM

              ||' avec '||f.NOM||', '||f.PRENOM from 1 for 160),

              0,

              e.ev_fam_date_year,

              e.ev_fam_date_mois,

              e.ev_fam_date

          FROM EVENEMENTS_FAM e

               inner join REF_EVENEMENTS EVE on EVE.REF_EVE_LIB_COURT=e.EV_FAM_TYPE

               inner join T_UNION u on u.UNION_CLEF=e.EV_FAM_KLE_FAMILLE

               inner join INDIVIDU m on m.cle_fiche=u.UNION_MARI

               inner join INDIVIDU f on f.cle_fiche=u.UNION_FEMME

          WHERE m.KLE_DOSSIER = :I_DOSSIER

          INTO :DATE_EVE,

               :CP,

               :VILLE,

               :S_TYPE,

               :NOM,

               :PRENOM,

               :NOM_COMPLET ,

               :SEXE,

               :DATE_YEAR,

               :DATE_MOIS,

               :DATE_DATE

   do

   suspend;

end ^



SET TERM ; ^

COMMIT WORK;

SET AUTODDL ON;
Il s'agit d'une procédure qui permettrait d'ajouter les évènements familiaux à la liste des évènements.

Chez moi, ce script ne pose aucun problème sur les bases sur mon serveur linux avec Firebird 2.0.

Par contre sous FB1.5.3, la deuxième partie de la procédure (UNION SELECT e.ev_fam_date_writen,...) bloque avec le message "datatype inconnu" et je n'en vois pas la raison.

La fonction SUBSTRING n'est pas en cause, il y a l'erreur sans et elle existe depuis FB 1.0.

Aucune erreur de syntaxe n'est signalée.

Même blocage avec FB embedded ou avec ISQL.EXE(donc avec la procédure de maj de la base).

Si quelqu'un peut essayer sous diverses configurations de FB? ou a une idée de l'origine du problème.

Pour faire plusieurs essais sur la même base, il faut supprimer la partie CREATE après la première fois.

Pour ensuite supprimer la procédure créée: DROP PROCEDURE PROC_ETAT_EVENEMENTS_SANS_TRI;

Doit-on en conclure qu'il y a un bug dans FB1.5.3?

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Roger 1

  • AncestroExpert
  • *****
  • Messages: 627
Bug de Firebird 1.5?[résolu]
« Réponse #1 le: 24 Août 2006 à 11:11:15 »
Apparemment cela se passe bien chez moi avec FB serveur version 2.0 candidate 3.

A+
 

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #2 le: 24 Août 2006 à 18:07:55 »
Donc çà marche avec FB2.0 sous Windows ou sous Linux.

Et avec FB1.5 quelqu'un arrive-t-il à le faire fonctionner?

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Tophe3860

Bug de Firebird 1.5?[résolu]
« Réponse #3 le: 24 Août 2006 à 19:34:37 »
Bonsoir,



J'ai copier / coller dans IBOConsole avec la version 1.5.3 de firebird...

Ben, j'ai une erreur... data unkown  :cry:
Christophe Pensez [résolu] et trucs & astuces : un ancestrologie pour tous, tous pour un ancestrologie!
 

Hors ligne Roger 1

  • AncestroExpert
  • *****
  • Messages: 627
Bug de Firebird 1.5?[résolu]
« Réponse #4 le: 24 Août 2006 à 19:35:40 »
Je viens d'essayer sur mon autre micro, cela plante avec FBserveur 1.5
 

Hors ligne Gvx

  • AncestroJunior
  • ****
  • Messages: 361
Bug de Firebird 1.5?[résolu]
« Réponse #5 le: 24 Août 2006 à 19:38:11 »
Bonjour André,



Firebird V1.5.3.4870 (serveur)



Voici le message d'erreur sous IBOConsole



ISC ERROR CODE:335544569



ISC ERROR MESSAGE:

Dynamic SQL Error

SQL error code = -206

Column unknown

E.EV_IND_DATE_MOIS

At line 41, column 17.


Hors ligne Roger 1

  • AncestroExpert
  • *****
  • Messages: 627
Bug de Firebird 1.5?[résolu]
« Réponse #6 le: 24 Août 2006 à 20:02:11 »
Ce message là c'est au moment où tu exécutes la requête,mais quand après tu vas chercher la procédure, quand tu l'éxécutes tu n'a aucun retour.

A+
 

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #7 le: 24 Août 2006 à 20:18:10 »
Citation de: "Gvx"
Column unknown

E.EV_IND_DATE_MOIS

At line 41, column 17.

Bonsoir,

Cette erreur là, c'est parce que ta base n'est pas à jour. Les champs MOIS ont été ajoutés depuis la b4.033.

A+

André

PS: Christophe a bien le même message que j'ai sous FB1.5.3
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Gvx

  • AncestroJunior
  • ****
  • Messages: 361
Bug de Firebird 1.5?[résolu]
« Réponse #8 le: 24 Août 2006 à 21:55:44 »
Citation de: "DDdeberdeux"
Citation de: "Gvx"
Column unknown

E.EV_IND_DATE_MOIS

At line 41, column 17.

Bonsoir,

Cette erreur là, c'est parce que ta base n'est pas à jour. Les champs MOIS ont été ajoutés depuis la b4.033.

A+

André




effectivement  :oops:



après essai, avec une base a jour, j'ai le même message d'erreur que Christophe.

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #9 le: 24 Août 2006 à 22:48:53 »
Cà confirme mes essais, et çà m'ennuie car il semble bien que ce soit un problème de FB1.5. Cà m'ennuierait de ne faire des améliorations que pour les possesseurs de FB2.0. FB2.0 n'est pas encore en version définitive, donc il ne serait pas prudent de le diffuser.

Pourtant il faudra bien parler de ce problème d'ici peu, car les bugs découverts dans FB1.5 ne seront plus réparés. Il ne reste plus qu'à les contourner en attendant.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne AquaBlue

Bug de Firebird 1.5?[résolu]
« Réponse #10 le: 25 Août 2006 à 12:03:22 »
Il me semble avoir eu des soucis avec SUBSTRING et Firebird 1.5



As-tu essayé sans SUBSTRING ?
 

Hors ligne Facon

Bug de Firebird 1.5?[résolu]
« Réponse #11 le: 25 Août 2006 à 14:37:15 »
Bonjour,

Je ne suis pas un usager de IBOConsole, toutefois j'ai essayé la manip en partant de zéro. Trouver l'application et découvrir vivement comment elle fonctionne.



Je suis avec Windows XP et Firebird embedded 1.5.3.4870.



J'ai ainsi fait l'expérience sur une base b4.043, j'ai obtenu en retour le message suivant:



ISC ERROR CODE:335544569



ISC ERROR MESSAGE:

Dynamic SQL Error

SQL error code = -104

Invalid command

Data type unknown




Je pense que c'est le même message d'erreur obtenu par chacun.

J'ai ensuite cherché sur Internet quelque chose sur la base de "substring+Firebird 1.5", il s'avère que cette commande n'est pas bien assimilée mais je suis incapable d'expliquer pourquoi. A toutes fins utiles mais je suis certain que d'autres ont fait la démarche, je joins ci-après une des adresses traitant du sujet ainsi que le commentaire. Deux ou trois autres commandes sont dans le même cas.



http://www.firebirdsql.org/index.php?op=devel&sub=engine&id=SQL_conformance&nosb=1



E021-06   SUBSTRING function   :In Firebird 1.5, SUBSTRING does not accept value expressions as its arguments.
Christian
 

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #12 le: 25 Août 2006 à 19:24:14 »
Le problème de substring dans FB1.5, c'est qu'il n'accepte pas des paramètres sous forme de variables, il faut que ce soit des constantes. C'est vrai que c'est une des nouveautés de FB2.0, d'accepter des variables pour les paramètres début et longueur. Mais là il s'agit de constantes.

Mais le problème n'est pas là, j'ai fait des essais sans substring, ou en remplaçant la ligne, il y a toujours l'erreur.

La requête est en deux parties, la première sur ev_ind, la deuxième sur ev_fam, réunies par UNION.

Prises séparément les 2 parties passent bien sous FB1.5 (même le substring).

Mais dès quelles sont ensembles, et dans n'importe quel ordre, çà ne va plus. Comme si UNION en était la cause. Et pourtant UNION est souvent utilisé ailleurs!

Cà m'intéresse si vous trouvez quelque chose sur le sujet.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Facon

Bug de Firebird 1.5?[résolu]
« Réponse #13 le: 26 Août 2006 à 12:38:50 »
Bonjour André,

Afin d'être bien en phase avec ton travail, peux-tu confirmer s'il faut introduire un numéro de dossier dans ta requète.

Dans les essais d'hier, j'ai omis cette opération.

J'ai vivement refait un essai en remplaçant I_Dossier par un numéro de dossier (deux emplacements dans la requète). J'obtiens un message d'erreur différent.

Peux-tu indiquer comment obtenir le numéro des lignes.
Christian
 

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #14 le: 26 Août 2006 à 14:40:49 »
Bonjour,

Je vous demandais surtout cet essai pour vérifier si cette procédure voulait bien se créer avec les diverses versions de Firebird que vous utilisez.

Le document liste des évènements appelle PROC_ETAT_EVENEMENTS(dossier). Pour ajouter les évènements familiaux aux évènements individuels qui y existent déjà, j'ai donc fait cette requête avec UNION. Mais il n'est pas possible de demander un ordre de tri sur l'UNION des 2 requêtes directement. C'est pourquoi j'ai créée cette requête PROC_ETAT_EVENEMENTS_SANS_TRI(dossier) qui sera appelée par PROC_ETAT_EVENEMENTS(dossier) cette dernière procédure se chargeant du tri. Mais comme cette dernière procédure n'est pas modifiée dans votre base, vous ne pouvez voir l'effet des modifications dans le document. (ou il faudrait que je vous diffuse une b4.044)

Si vous voulez la faire fonctionner, dans IBOConsole, il y a le volet Exécution où il suffit de saisir le N° de dossier en paramètre. Cà donne (sous FB2.0 uniquement et malheureusement) la liste de tous les évènements, non triée.

Dans un autre requêteur: select * from PROC_ETAT_EVENEMENTS_SANS_TRI(n° dossier)

Merci pour les essais. Mais pour le moment je ne peux qu'en conclure une impossibilité (et une anomalie?) avec FB1.5.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne DDdeBerdeux

Bug de Firebird 1.5?[résolu]
« Réponse #15 le: 01 Septembre 2006 à 18:42:23 »
Cà y est la cause et la solution ont été trouvées.

La cause, c'est que FB1.5 est très restrictif. Dans une requête UNION les champs correspondants dans chacune des requêtes doivent être rigoureusement du même type et déclarés. Ainsi si un champ est un varchar(50) dans la première partie, dans la seconde on ne peut utiliser un chaine constante ou NULL, il faut la "caster" pour qu'elle soit vue comme un varchar(50) également.

Problème résolu. Dans la b4.046, la procédure qui permet de lister les évènements individuels et familiaux est la même quelque soit la version de Firebird.

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Facon

Bug de Firebird 1.5?[résolu]
« Réponse #16 le: 01 Septembre 2006 à 22:07:34 »
Bonsoir André,

Je vois que tu es parvenu à résoudre la difficulté qui interdisait l'exécution de la requête avec FB1.5. Merci pour ta persévérance et pour tout le temps que tu consacres à faire bouger et évoluer Ancestrologie.

Tout cela sera testé dès l'arrivée de la version Ancestrologie v550.
Christian