IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Requete qui ne marche plus avec firebird 2.5


Sujet :

SQL Firebird

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut Requete qui ne marche plus avec firebird 2.5
    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

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    aucune idée
    mais il vaux mieux tester avec la dernière version dispo

    http://www.firebirdsql.org/index.php...s&id=snapshots

    et si tjrs problème, rapporter le bug

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut
    Bonjour philippe,


    je viens de tester, et cela semble bien un bug . Je prepare le message pour firebird

    merci

    olivier

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    Voici une requete (un peu grosse peut etre pour une bonne visualisation !)
    C'est sûr c'est difficile à lire

    tu es certain qu'il n'y avait pas plus simple ?

    mais bon, si cela permet de debusquer des éventuels bugs, pourquoi pas

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut
    c'est sur !

    mais je vais quand meme essayer de la simplifier (je ne suis pas sadique a ce point )


    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
    SELECT Data.Id_Data,
           (SELECT COUNT (*) + 1
               FROM N_Bird Bird_Rang
                       INNER JOIN N_Data Data_Rang ON (Bird_Rang.Id_Bird = Data_Rang.Id_Bird)
                       INNER JOIN N_Marquage Marquage_Rang ON (Marquage_Rang.Id_Bird = Bird_Rang.Id_Bird)
                       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)
                       INNER JOIN N_Session Session_Rang ON (Session_Rang.Id_Session = Data_Rang.Id_Session)
                       LEFT JOIN N_Session_Code Theme_Session_Rang ON (Theme_Session_Rang.Id_Session = Session_Rang.Id_Session)
               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
       FROM N_Bird Bird
               INNER JOIN N_Data Data ON (Bird.Id_Bird = Data.Id_Bird)
               INNER JOIN N_Marquage Marquage ON (Marquage.Id_Bird = Bird.Id_Bird)
               INNER JOIN N_Bague Bague ON (Bague.Id_Bague = Marquage.Id_Bague)
               INNER JOIN C_Centre Centre ON (Centre.Id_Centre = Bague.Id_Centre)
               INNER JOIN N_Session Session ON (Session.Id_Session = Data.Id_Session)
               LEFT JOIN N_Session_Code Theme_Session ON (Theme_Session.Id_Session = Session.Id_Session)

    Je n'est pas pu faire plus
    ca va ?

    a+

    olivier

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut
    Bonjour

    j'ai trouve le probleme de la requete.

    c'est une UDF de FreeAdhocUDF de la requete qui pose cet erreur (F_SPACE()).
    Si je remplace cet fonction par l'equivalent "manuel", ca fonctionne.

    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
    SELECT DATA.Id_Data,
           (SELECT COUNT (*) + 1
               FROM N_Bird Bird_Rang
                       INNER JOIN N_Data Data_Rang ON (Bird_Rang.Id_Bird = Data_Rang.Id_Bird)
                       INNER JOIN N_Marquage Marquage_Rang ON (Marquage_Rang.Id_Bird = Bird_Rang.Id_Bird)
                       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)
                       INNER JOIN N_Session Session_Rang ON (Session_Rang.Id_Session = Data_Rang.Id_Session)
                       LEFT JOIN N_Session_Code Theme_Session_Rang ON (Theme_Session_Rang.Id_Session = Session_Rang.Id_Session)
               WHERE Centre_Rang.Code || 
    IIF (Bague_Rang.Prefixe IS NULL, '     ', CAST (Bague_Rang.Prefixe AS CHAR (5))) 
    || CAST (Bague_Rang.Bague AS CHAR (11)) || 
    IIF (Bague.Sufixe IS NULL, '     ', 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, '     ', CAST (Bague.Prefixe AS CHAR (5))) 
    || CAST (Bague.Bague AS CHAR (11)) || 
    IIF (Bague.Sufixe IS NULL, '     ', CAST (Bague.Sufixe AS CHAR (5))) 
    || Session.Date_Session || DATA.Date_Add || DATA.Heure || DATA.Actif || DATA.Date_Modif) AS Rang
       FROM N_Bird Bird
               INNER JOIN N_Data DATA ON (Bird.Id_Bird = DATA.Id_Bird)
               INNER JOIN N_Marquage Marquage ON (Marquage.Id_Bird = Bird.Id_Bird)
               INNER JOIN N_Bague Bague ON (Bague.Id_Bague = Marquage.Id_Bague)
               INNER JOIN C_Centre Centre ON (Centre.Id_Centre = Bague.Id_Centre)
               INNER JOIN N_Session Session ON (Session.Id_Session = DATA.Id_Session)
               LEFT JOIN N_Session_Code Theme_Session ON (Theme_Session.Id_Session = Session.Id_Session)

    mais a qui dois-je envoyer cet information : Firebird ou freeAdhocUDF, ou les deux ???

    a+

    olivier

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut
    Re bonjour et desole d'avance

    j'ai trouve le probleme.

    Il vient des UDF freeAdHocUDF dont je n'utilisais pas la derniere version.

    Je viens de faire cette mise a jour et tout tourne

    encore desole (ce qui prouve qu'on ne cherche jamais assez ET ce c'est plus souvent de SA faute que de celle des autres )

    a+

    olivier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un simple copier coller qui ne marche plus avec selection.copy
    Par nicdodo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2015, 18h19
  2. La connexion qui ne marche plus avec jaybird
    Par JeanNoel53 dans le forum Firebird
    Réponses: 1
    Dernier message: 20/09/2013, 23h44
  3. function qui ne marche plus avec un 2ème paramètre
    Par Zorgloub dans le forum Général VBA
    Réponses: 3
    Dernier message: 10/09/2008, 23h51
  4. [MySQL] condition avec requete qui ne marche pas ..sous ie
    Par esti89 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h53
  5. (UNION) Requete qui ne fonctionne plus avec mysql4
    Par kreatik dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/11/2007, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo