en attendant ceux qui veuelent réparer par eux meme, voici la marche a suivre
1 Allez dans le BOA ou le requeteur sql et executez y la requete suivante et tenez moi au courant
ALTER PROCEDURE PROC_LISTE_INDIVIDU (
    I_DOSSIER INTEGER,
    I_LETTRE VARCHAR (1) CHARACTER SET ISO8859_1,
    I_MODE INTEGER,
    I_SEXE INTEGER)
RETURNS (
    NOM VARCHAR (40) CHARACTER SET ISO8859_1,
    PRENOM VARCHAR (60) CHARACTER SET ISO8859_1,
    SURNOM VARCHAR (120) CHARACTER SET ISO8859_1,
    SEXE INTEGER,
    CLE_FICHE INTEGER,
    CLE_PERE INTEGER,
    CLE_MERE INTEGER,
    KLE_DOSSIER INTEGER,
    DATE_NAISSANCE VARCHAR (100) CHARACTER SET ISO8859_1,
    ANNEE_DECES INTEGER,
    CP VARCHAR (10) CHARACTER SET ISO8859_1,
    VILLE VARCHAR (50) CHARACTER SET ISO8859_1,
    NUM_SOSA DOUBLE PRECISION,
    DATE_DECES VARCHAR (100) CHARACTER SET ISO8859_1,
    CP_DECES VARCHAR (10) CHARACTER SET ISO8859_1,
    VILLE_DECES VARCHAR (50) CHARACTER SET ISO8859_1,
    ANNEE_NAISSANCE INTEGER)
AS
begin 
/*--------------------------------------------------------------------------- 
Copyright Philippe Cazaux-Moutou. Tout droits réservés.
Créé le : 2/07/2002 
à : 06:13:52 
Modifiée le : 
à : :
par : 
Description : Liste des individus par lettre 
I_MODE : 0 - les morts
1 - les vivants 
2 - tous 
I_LETTRE : Alpha - que ceux de la lettre 
* - Tous 
I_SEXE : 1 - Homme
2 - Femme 
0 - Tous 
Usage :
---------------------------------------------------------------------------*/ 
I_LETTRE = UPPER(I_LETTRE);
if ((I_LETTRE <> '*' ) AND (I_SEXE = 0)) then /* Une lettre et tous les sexes */
for 
    SELECT enfant.nom,
           enfant.prenom,
           enfant.surnom,
           enfant.sexe,
           enfant.cle_fiche,
           enfant.cle_pere,
           enfant.cle_mere,
           enfant.kle_dossier,
           enfant.date_naissance,
           enfant.annee_deces,
           ne.ev_ind_cp,
           ne.ev_ind_ville,
           enfant.num_sosa,
           enfant.date_deces,
           deces.ev_ind_cp,
           deces.ev_ind_ville,
           enfant.annee_naissance
         FROM individu enfant
         LEFT JOIN evenements_ind ne
         ON (enfant.cle_fiche = ne.ev_ind_kle_fiche and
         ne.ev_ind_type = 'BIRT' )
         LEFT JOIN evenements_ind deces
         ON (enfant.cle_fiche = deces.ev_ind_kle_fiche and
         deces.ev_ind_type = 'DEAT' )
    where
         enfant.kle_dossier = :I_DOSSIER AND
         enfant.nom STARTING WITH :I_LETTRE
    ORDER BY enfant.nom
    INTO :NOM,
         :PRENOM,
         :SURNOM,
         :SEXE,
         :CLE_FICHE,
         :CLE_PERE,
         :CLE_MERE,
         :KLE_DOSSIER,
         :DATE_NAISSANCE,
         :ANNEE_DECES,
         :CP,
         :VILLE,
         :NUM_SOSA,
         :DATE_DECES,
         :CP_DECES,
         :VILLE_DECES,
         :ANNEE_NAISSANCE
do
suspend;
if ((I_LETTRE <> '*' ) AND (I_SEXE > 0)) then /* Une lettre et sexe defini */
for
   SELECT Upper(enfant.nom),
          enfant.prenom,
          enfant.surnom,
          enfant.sexe,
          enfant.cle_fiche,
          enfant.cle_pere,
          enfant.cle_mere,
          enfant.kle_dossier,
          enfant.date_naissance,
          enfant.annee_deces,
          ne.ev_ind_cp,
          ne.ev_ind_ville,
          enfant.num_sosa,
          enfant.date_deces,
          deces.ev_ind_cp,
          deces.ev_ind_ville,
          enfant.annee_naissance
        FROM individu enfant
        LEFT JOIN evenements_ind ne
        ON (enfant.cle_fiche = ne.ev_ind_kle_fiche and
        ne.ev_ind_type = 'BIRT' )
        LEFT JOIN evenements_ind deces
        ON (enfant.cle_fiche = deces.ev_ind_kle_fiche and
        deces.ev_ind_type = 'DEAT' )
   where
        enfant.kle_dossier = :I_DOSSIER AND
        enfant.nom STARTING WITH :I_LETTRE AND
        enfant.sexe = :I_SEXE
   ORDER BY enfant.nom
   INTO :NOM,
        :PRENOM,
        :SURNOM,
        :SEXE,
        :CLE_FICHE,
        :CLE_PERE,
        :CLE_MERE,
        :KLE_DOSSIER,
        :DATE_NAISSANCE,
        :ANNEE_DECES,
        :CP,
        :VILLE,
        :NUM_SOSA,
        :DATE_DECES,
        :CP_DECES,
        :VILLE_DECES,
        :ANNEE_NAISSANCE
do
suspend;
if ((I_LETTRE = '*' ) AND (I_SEXE = 0)) then /* Toutes lettres et tous les sexes */
for
SELECT Upper(enfant.nom),
enfant.prenom,
enfant.surnom,
enfant.sexe,
enfant.cle_fiche,
enfant.cle_pere,
enfant.cle_mere,
enfant.kle_dossier,
enfant.date_naissance,
enfant.annee_deces,
ne.ev_ind_cp,
ne.ev_ind_ville,
enfant.num_sosa,
          enfant.date_deces,
          deces.ev_ind_cp,
          deces.ev_ind_ville,
          enfant.annee_naissance
FROM individu enfant
LEFT JOIN evenements_ind ne
ON (enfant.cle_fiche = ne.ev_ind_kle_fiche and
ne.ev_ind_type = 'BIRT')
        LEFT JOIN evenements_ind deces
        ON (enfant.cle_fiche = deces.ev_ind_kle_fiche and
        deces.ev_ind_type = 'DEAT' )
where
enfant.kle_dossier = :I_DOSSIER
ORDER BY enfant.nom
INTO :NOM,
:PRENOM,
:SURNOM,
:SEXE,
:CLE_FICHE,
:CLE_PERE,
:CLE_MERE,
:KLE_DOSSIER,
:DATE_NAISSANCE,
:ANNEE_DECES,
:CP,
:VILLE,
:NUM_SOSA,
        :DATE_DECES,
        :CP_DECES,
        :VILLE_DECES,
        :ANNEE_NAISSANCE
do
suspend;
if ((I_LETTRE = '*' ) AND (I_SEXE > 0)) then /* Toutes lettres et un sexe */
for
SELECT Upper(enfant.nom),
enfant.prenom,
enfant.surnom,
enfant.sexe,
enfant.cle_fiche,
enfant.cle_pere,
enfant.cle_mere,
enfant.kle_dossier,
enfant.date_naissance,
enfant.annee_deces,
ne.ev_ind_cp,
ne.ev_ind_ville,
enfant.num_sosa,
          enfant.date_deces,
          deces.ev_ind_cp,
          deces.ev_ind_ville,
          enfant.annee_naissance
FROM individu enfant
LEFT JOIN evenements_ind ne
ON (enfant.cle_fiche = ne.ev_ind_kle_fiche and
ne.ev_ind_type = 'BIRT')
        LEFT JOIN evenements_ind deces
        ON (enfant.cle_fiche = deces.ev_ind_kle_fiche and
        deces.ev_ind_type = 'DEAT' )
where
enfant.kle_dossier = :I_DOSSIER AND
enfant.sexe = :I_SEXE
ORDER BY enfant.nom
INTO :NOM,
:PRENOM,
:SURNOM,
:SEXE,
:CLE_FICHE,
:CLE_PERE,
:CLE_MERE,
:KLE_DOSSIER,
:DATE_NAISSANCE,
:ANNEE_DECES,
:CP,
:VILLE,
:NUM_SOSA,
        :DATE_DECES,
        :CP_DECES,
        :VILLE_DECES,
        :ANNEE_NAISSANCE
do
suspend;
end
et pareil avec celle ci
ALTER PROCEDURE PROC_TROUVE_IND_PAR_LETTRE (
    A_LETTRE VARCHAR (1) CHARACTER SET ISO8859_1,
    I_DOSSIER INTEGER)
RETURNS (
    NOM VARCHAR (40) CHARACTER SET ISO8859_1)
AS
BEGIN
   /*---------------------------------------------------------------------------
   Copyright Philippe Cazaux-Moutou. Tout droits réservés.
   Créé le : 31/07/2001
   à : 19:47:54
   Modifiée le :
   à : :
   par :
   Description : 
   Usage       :
   ---------------------------------------------------------------------------*/
  A_LETTRE = UPPER(A_LETTRE);
  FOR
    SELECT DISTINCT NOM
       FROM INDIVIDU
       WHERE nom STARTING WITH :A_LETTRE AND
             KLE_DOSSIER = :I_DOSSIER
       ORDER BY nom
    INTO :NOM
  DO
  BEGIN
    SUSPEND;
  END
END