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

Connexion aux bases de données Firebird Discussion :

BLR error


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Points : 35
    Points
    35
    Par défaut BLR error
    Bonjour,

    Mon application crée de nouvelles tables chaque année.
    Ma query qui marchait bien jusqu'en décembre me donne maintenant un message d'erreur :

    invalid request BLR at offset AT OFFSET 647
    context already in use (BLR error)
    Que signifie context already in use ?
    Quelle est la limite en taille pour ma query ? (avec D7)
    647 caractères ??

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Points : 101
    Points
    101
    Par défaut
    J'ai eu ce genre de message qui provient de l'interpréteur sql.
    Il y a une répétition dans ton code....
    C'est ce qui ressort de mon expérience limitée;
    j'ai résolu le pb en m'y prenant autrement.
    Je n'en sais pas davantage.

    Lucien
    Amicalement
    Lucien

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    le BLR est la forme compilée d'une requête, d'une procedure stockée, d'un triger ou d'une contrainte check. Il est possible que tu utilises une base créée dans une version d'interbase ou de firebird mais utilisée dans une autre. Même un backup/restore ne recompile pas les PS, les triggers et les checks.

    Henri
    Henri Gourvest
    http://www.progdigy.com

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Points : 101
    Points
    101
    Par défaut
    Merci Henri,
    tu fais avancer ma connaissance,
    tu précises ce que j'avais soupçonné.
    Bonne année
    Lucien
    Amicalement
    Lucien

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    merci pour vos réponses mais cela ne résoud pas mon probleme.
    En gros, pour une appli sur 4 point de ventes, la query qui me donne le détail du chiffre d'affaire multi-point de vente, parcours toutes les tables et se génére a chaque lancement.
    Donc pour une base créée en 2004 on avait jusque la 4 * 2 tables.Tout Ok
    Au passage en 2006 ==> création des nouvelles tables de vente 2006 ==> 4 * 3 tables : Message erreur.

    La query générée fait 11 pages
    au lieu d'alias du type ....join Mytable a on a.monchamp=....
    je vais essayer de remettre le nom de la table
    ....join Mytable a on Mytable.monchamp=....

    ...a suivre

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    peux tu nous donner la version d'interbase ou de firebird que tu utilises et la requête qui génere l'erreur ?
    Merci
    Henri
    Henri Gourvest
    http://www.progdigy.com

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Firebird 1.5.2.4731 - Delphi7

    je resume : 5 points de ventes installés depuis
    3 ans donc 5 * 3 tables de ventes. Je génére dynamiquement ma requete puisque le nombre de points de ventes et d'années d'exploitations est différent selon les clients.
    Tout se passait bien pendant 2 ans, la 3° année BOOm
    Evidement les tables sont identiques chaque année.

    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
     
    IBDatabase1.GetTableNames(listbox1.Items,false);
     
    ibquery1.SQL.clear;
     
    for i:=0 to listbox1.Items.count-1 do
      begin
     
      if (copy(listbox1.Items[i],1,1)='R') then 
        begin
        for j:=Yearof(DATE_INSTALL) to Yearof(DATE_JOUR) do
           begin
           if trim(ibquery1.SQL.Text)<>'' then
           	ibquery1.sql.add('UNION ALL');
     
          ibquery1.sql.add('select s.SF_HORSCATVA,c.SF_CODE,upper(b.cl_nom),	a.cl_num,cast(0 as integer) as GR_CODE,b.cl_nom');
          ibquery1.sql.add(', rr.R1_NUM, c.FA_DATE,c.AR_CODE, c.AR_LIBELLE, c.AR_QTE, c.AR_PRIX, c.AR_REMISE, c.AR_COMM, 		c.AR_OFFERT, c.AR_TIME,');
          ibquery1.sql.add('rr.AR_TRANSFERT, c.AR_TYPE, c.AR_TYPEVENTIL, c.AR_VENTIL, c.FA_DATE, c.COM_CODE, c.FA_NUM, 		rr.FA_FOLIO,');
          ibquery1.sql.add('c.FA_NUMLIGNE,  c.REM_CODE, c.RF_MENU, c.RF_NUMMASTER, s.SF_LIBELLE,rr.AR_PRIX as 			prix1,f.fa_reglee as prix2');
          ibquery1.sql.add('from RH'+copy(inttostr(j),3,2)+' rr ');
          ibquery1.sql.add('join '+listbox1.Items[i]+'  c on c.fa_num=rr.AR_TRANSFERT' );
          ibquery1.sql.add('join F'+copy(listbox1.Items[i],2,length(listbox1.Items[i])-1)+' f on f.fa_num=c.fa_num');
          ibquery1.sql.add('join T_RESAH a on a.r1_num=rr.r1_num and a.cl_num<>0 ');
          ibquery1.sql.add('join T_CLIENT b on b.cl_num=a.cl_num and B.cl_type<>2');
          ibquery1.sql.add('join T_serv s on s.sf_code=c.sf_code');
          ibquery1.SQL.add('where   rr.ar_type=0 and rr.fa_num=0');
     
          ibquery1.sql.add('UNION ALL');
     
          ibquery1.sql.add('select SF_HORSCATVA, c.SF_CODE,upper(b.cl_nom),a.cl_num,b.GR_CODE,b.cl_nom');
          ibquery1.sql.add(', rr.R1_NUM, c.FA_DATE,c.AR_CODE, c.AR_LIBELLE, c.AR_QTE, c.AR_PRIX, c.AR_REMISE, c.AR_COMM, 	c.AR_OFFERT, c.AR_TIME,');
          ibquery1.sql.add('rr.AR_TRANSFERT, c.AR_TYPE, c.AR_TYPEVENTIL, c.AR_VENTIL, c.FA_DATE, c.COM_CODE, c.FA_NUM, 	rr.FA_FOLIO,');
          ibquery1.sql.add('c.FA_NUMLIGNE,  c.REM_CODE, c.RF_MENU, c.RF_NUMMASTER,s.SF_LIBELLE,rr.AR_PRIX as 		prix1,f.fa_reglee as prix2');
          ibquery1.sql.add('from RH'+copy(inttostr(j),3,2)+' rr ');
          ibquery1.sql.add('join '+listbox1.Items[i] +' c on c.fa_num=rr.AR_TRANSFERT ' );
          ibquery1.sql.add('join F'+copy(listbox1.Items[i],2,length(listbox1.Items[i])-1)+' f on f.fa_num=c.fa_num');
          ibquery1.sql.add('left outer join T_RESAH a on a.r1_num=rr.r1_num and a.cl_num=0 and a.gr_code<>0 ');
          ibquery1.sql.add('join T_CLIENT b on b.gr_code=a.gr_code ');
          ibquery1.sql.add('join T_serv s on s.sf_code=c.sf_code');
          ibquery1.SQL.add('where   rr.ar_type=0 and rr.fa_num=0');
     
            end;
      end;
    ibquery1.sql.add('ORDER BY 1,2');
    ibquery1.Open;
    Je ne suis pas sure que quelqu'un ai le courage de s'y pencher...
    Ce que je voudrais surtout comprendre c'est cette notion de context...
    La base c'est moi qui l'ai créée, la maintient etc...

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Pour être clair il ne s'agit d'une erreur interne à Firebird.
    Ton code n'est certainement pas en cause.
    Apres qq recherches il semble que ce type d'erreur provienne à l'origine d'interbase 6 dont Firebird est issu. Cette erreur serait corrigée dans Interbase7. Le probleme serait lié à l'usage des mot clés DISTINCT UNION SUM ou COUNT. C'est pas grand chose mais c'est déjà un axe de recherche.

    Il faudrait remonter cette erreur à l'équipe de dev de Firebird, pour cela il faudrait que tu fournisses la structure exacte des tables utilisée dans ta requête ainsi que ta requête complete. Si tu veux je peux me charger de la correspondance.

    Merci

    Henri
    Henri Gourvest
    http://www.progdigy.com

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    OK Henri.
    Peux-tu me donner une adresse mail par mp.Je prepare tout ce week-end car évidement je suis dans le jus et doit trouver une solution avant ce soir.

    Je vais réussir a contourner le pb pour l'instant pour mes clients.

    Veux-tu une petite base contenant ces tables ?

    Laurence

Discussions similaires

  1. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29
  2. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  3. [Kylix] Kylix c++ error
    Par pacpac dans le forum EDI
    Réponses: 2
    Dernier message: 10/06/2003, 16h27
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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