Bonjour a tous

Voici une requete (un peu grosse peut etre pour une bonne visualisation !)

Voici la requete dont l'objectif est de recuperer des donnees (trivial ) ET de leur attribuer un rang (fonction qui sera implemente dans la version 3 )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
SELECT Data.Id_Data
                -- pour calculer le RANG
       (SELECT COUNT (*) + 1
           FROM N_Bird Bird_Rang
                   INNER JOIN N_Data Data_Rang ON (Bird_Rang.Id_Bird = Data_Rang.Id_Bird AND (Data_Rang.Actif = 1 OR Data_Rang.Actif = 1) AND Bird_Rang.Actif = 1)
                   INNER JOIN (SELECT N_Marquage.Id_Bague,
                                      N_Marquage.Id_Bird
                                  FROM N_Marquage
                                  WHERE N_Marquage.Date_Action = (SELECT MAX (Marque_Rang.Date_Action)
                                                                     FROM N_Marquage Marque_Rang
                                                                     WHERE Marque_Rang.Id_Bird = N_Marquage.Id_Bird AND
                                                                           Marque_Rang.Erreur = 0 AND
                                                                           Marque_Rang.Actif = 1) AND
                                        N_Marquage.Actif = 1 AND
                                        N_Marquage.Erreur = 0) Marquage_Rang ON (Marquage_Rang.Id_Bird = Bird_Rang.Id_Bird)
                   -- INFOS SUR LA BAGUE
                   INNER JOIN N_Bague Bague_Rang ON (Bague_Rang.Id_Bague = Marquage_Rang.Id_Bague)
                   INNER JOIN C_Centre Centre_Rang ON (Centre_Rang.Id_Centre = Bague_Rang.Id_Centre AND Centre_Rang.Id_Code = 1 AND Centre_Rang.Actif = 1)
                   -- INFOS SUR LA SESSION
                   INNER JOIN N_Session Session_Rang ON (Session_Rang.Id_Session = Data_Rang.Id_Session AND ((Session_Rang.Actif = 1) OR (Session_Rang.Actif = 1)))
                   LEFT JOIN N_Session_Code Theme_Session_Rang ON (Theme_Session_Rang.Id_Session = Session_Rang.Id_Session AND Theme_Session_Rang.Id_Infos = 15)
                   -- LE BAGUEUR
                   LEFT JOIN B_Bagueur Bagueur_Ses_Rang ON (Bagueur_Ses_Rang.Id_Bagueur = Session_Rang.Id_Bagueur)
                   -- INFOS SUR LES DONNEES DE CAPTURE
                   -- LE BAGUEUR
                   LEFT JOIN B_Bagueur Bagueur_Data_Rang ON (Bagueur_Data_Rang.Id_Bagueur = Data_Rang.Id_Bagueur)

           WHERE Centre_Rang.Code || IIF (Bague_Rang.Prefixe IS NULL, F_Space (5), CAST (Bague_Rang.Prefixe AS CHAR (5))) || CAST (Bague_Rang.Bague AS CHAR (11)) || IIF (Bague.Sufixe IS NULL, F_Space (5), CAST (Bague_Rang.Sufixe AS CHAR (5))) || Session_Rang.Date_Session || Data_Rang.Date_Add || Data_Rang.Heure || Data_Rang.Actif || Data_Rang.Date_Modif < Centre.Code || IIF (Bague.Prefixe IS NULL, F_Space (5), CAST (Bague.Prefixe AS CHAR (5))) || CAST (Bague.Bague AS CHAR (11)) || IIF (Bague.Sufixe IS NULL, F_Space (5), CAST (Bague.Sufixe AS CHAR (5))) || Session.Date_Session || Data.Date_Add || Data.Heure || Data.Actif || Data.Date_Modif) AS Rang
                -- fin du calcul du RANG   

FROM N_Bird Bird
           INNER JOIN N_Data Data ON (Bird.Id_Bird = Data.Id_Bird AND ((Data.Actif = 1) OR (Data.Actif = 1)) AND Bird.Actif = 1)
           INNER JOIN (SELECT N_Marquage.Id_Bague,
                              N_Marquage.Id_Bird
                          FROM N_Marquage
                          WHERE N_Marquage.Date_Action = (SELECT MAX (Marque.Date_Action)
                                                             FROM N_Marquage Marque
                                                             WHERE Marque.Id_Bird = N_Marquage.Id_Bird AND
                                                                   Marque.Erreur = 0 AND
                                                                   Marque.Actif = 1) AND
                                N_Marquage.Actif = 1 AND
                                N_Marquage.Erreur = 0) Marquage ON (Marquage.Id_Bird = Bird.Id_Bird)
           -- INFOS SUR LA BAGUE
           INNER JOIN N_Bague Bague ON (Bague.Id_Bague = Marquage.Id_Bague)
           INNER JOIN C_Centre Centre ON (Centre.Id_Centre = Bague.Id_Centre AND Centre.Id_Code = 1 AND Centre.Actif = 1)
           -- INFOS SUR LA SESSION
           INNER JOIN N_Session Session ON (Session.Id_Session = Data.Id_Session AND ((Session.Actif = 1) OR (Session.Actif = 1)))
           LEFT JOIN N_Session_Code Theme_Session ON (Theme_Session.Id_Session = Session.Id_Session AND Theme_Session.Id_Infos = 15)
           -- LE BAGUEUR
           LEFT JOIN B_Bagueur Bagueur_Ses ON (Bagueur_Ses.Id_Bagueur = Session.Id_Bagueur)
           -- INFOS SUR LES DONNEES DE CAPTURE

           -- LE BAGUEUR
           LEFT JOIN B_Bagueur Bagueur_Data ON (Bagueur_Data.Id_Bagueur = Data.Id_Bagueur)
           -- LES INFOS SUR LE BAGUAGE/controle ou reprise
           LEFT JOIN D_Taxon Dtaxon ON (Dtaxon.Id_Taxon = Data.Id_Taxon AND Dtaxon.Actif = 1)
           LEFT JOIN C_Espece Cespece ON (Cespece.Id_Taxon = Data.Id_Taxon AND Cespece.Actif = 1 AND Cespece.Id_Code = (SELECT Champs.Id_Code
                                                                                                                           FROM P_Champs Champs
                                                                                                                           WHERE Champs.Id_Champs = 5))
           LEFT JOIN D_Espece Despece ON (Despece.Id_Taxon = Data.Id_Taxon AND Despece.Id_Langue = 1and Despece.Actif = 1)
           LEFT JOIN C_Theme Theme ON (Theme.Id_Theme = Data.Id_Theme AND Theme.Id_Code = 1)
           LEFT JOIN A_Fa ON (A_Fa.Id_Data = Data.Id_Data)
           LEFT JOIN N_Mue ON (N_Mue.Id_Data = Data.Id_Data)
           INNER JOIN D_Lieudit Lieux ON (Lieux.Id_Lieudit = Session.Id_Lieudit AND Lieux.Id_Langue IS NOT DISTINCT FROM (SELECT Ps_Quel_Langue_Lieux.Id_Langue
                                                                                                                             FROM Ps_Quel_Langue_Lieux (Session.Id_Lieudit, 1)) AND Lieux.Preference = 1)
avec la version 2.1 elle fonctionnait, mais avec la version 2.5, je recois ce message :
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Error writing data to the connection.
Quelle pb dans ma requete peut justifier ce message ??

a+

olivier