Announcement

Collapse
No announcement yet.

FB 1.5: Number of page buffers for cache required (SQL-Error -104)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FB 1.5: Number of page buffers for cache required (SQL-Error -104)

    Hallo,

    ein von mir unter FB 1.0 getestetes SQL-Script führt nun unter FB 1.5 zu der folgenden Fehlermeldung:
    <PRE>
    Invalid token. Dynamic SQL Error. SQL error code = -104. number of page buffers for cache required.
    </PRE>
    Was hat es mit dieser Fehlermeldung auf sich ? Und wieso tritt sie nur unter FB 1.5 auf ?

    Bei FB 1.0 läuft das Script problemlos durch.

    Grüsse,
    Carsten

  • #2
    Hallo Carsten,<br>
    <br>
    in solchen Fällen immer das Script mitposten oder zumindest den Teil, der Probleme macht.<br>
    Anders ist die Fehlersuche zu mühsam.<br>

    Wo hast du das Script abgearbeitet, hast du eines der Third-Party Tools für FB?<br>
    <br>
    Floria

    Comment


    • #3
      Hallo Florian,

      das Script habe ich in IBExpert Personal Edition abgearbeitet. Die Prozedur, die unter FB 1.5 nicht abgearbeitet wird, poste ich mal:

      <PRE>
      CREATE PROCEDURE GetSumNostrokontenName (sDatum VARCHAR(10))
      RETURNS (Kurzname_Bank VARCHAR(22), Konto_Bank NUMERIC(10,0), Iso_Bank VARCHAR(3), Devisen_Betrag Numeric(12,2), Valuta_Bank Date, Iso_Kunde VARCHAR(3), Meldung VARCHAR(1), Storno VARCHAR(1), Trader VARCHAR(35), Konto_Report VARCHAR(10)) AS
      BEGIN
      FOR SELECT Kurzname_Bank, Konto_Bank, Iso_Bank, Sum(Devisen_Betrag), Valuta_Bank, Iso_Kunde, Meldung, Storno, Trader, CAST(Konto_Bank AS VARCHAR(10))
      FROM zva_nostro
      WHERE Substring(CRE_TS FROM 9 FOR 2) || '.' || Substring(CRE_TS FROM 6 FOR 2) || '.' || Substring(CRE_TS FROM 1 FOR 4) = :sDatum
      GROUP BY Konto_Bank, Kurzname_Bank, Iso_Bank, Valuta_Bank, Iso_Kunde, Meldung, Storno, Trader
      ORDER BY Kurzname_Bank, Valuta_Bank, Iso_Bank, Devisen_Betrag, Meldung
      INTO :Kurzname_Bank, :Konto_Bank, :Iso_Bank, evisen_Betrag, :Valuta_Bank, :Iso_Kunde, :Meldung, :Storno, :Trader, :Konto_Report
      DO BEGIN
      SUSPEND;
      END
      END
      ^
      </PRE>

      Unter FB 1.0 läuft das Script wohlgemerkt fehlerfrei durch.

      Da das Script ziemlich lang ist, würde ich es Dir gerne einmal per E-Mail zusenden, falls Du in der geposteten Prozedur keinen Fehler feststellen kannst.

      Grüsse,
      Carste

      Comment


      • #4
        Hallo Carsten,<br>
        <br>
        auf den ersten Blick fällt mir nichts auf, ausser einiges zur Syntax:<br>
        Warum übergibst du der Prozedur das Datum als String und nicht als Date? Wenn es als Datum übergeben wird, kannst du den Vergleich mit CRE_TS auch direkt machen: WHERE CRE_TS = :sDatum.<br>
        Wenn du Jahr, Monat und Tag aus einem Datumsfeld extrahieren willst, gibt es ab FB 1.5 den Befehl EXTRACT(DAY[MONTH,YEAR] FROM DatumsFeld).<br>
        <br>
        Kannst mir ja mal das komplette Script per Mail schicken an [email protected].<br>
        <br>
        Floria

        Comment


        • #5
          Carsten,<br>
          <br>
          doch noch was gefunden:<br>
          Du hast Order by ....Devisen_Betrag...., ohne dass Devisen_Betrag im Group By auftaucht.<br> Mach mal das Devisen_Betrag aus dem Order By raus und versuchs nochmal.<br>
          <br>
          Floria

          Comment


          • #6
            Hallo Florian,

            >Du hast Order by ....Devisen_Betrag...., ohne >dass Devisen_Betrag im Group By auftaucht.

            Super, vielen Dank. Das war die Ursache. Jetzt läuft das Script wieder ohne Fehler durch.

            Anscheinend hat FB 1.5 eine strengere Syntax-Prüfung als FB 1.0

            Grüsse,
            Carste

            Comment


            • #7
              Hallo Carsten,
              <br><br>
              ja, Firebird 1.5 hat hier eine strengere Prüfung. Schau in den 1.5 Release Notes mal unter "Improved aggregate handling" nach. Steht nicht wirklich mehr drinnen, aber vielleicht ist ja auch ein GROUP BY Ordinalzahl interessant. ;-)
              <br><br>
              Schöne Grüße,
              <br>
              Thoma
              Thomas Steinmaurer

              Firebird Foundation Committee Member
              Upscene Productions - Database Tools for Developers
              Mein Blog

              Comment

              Working...
              X