Announcement

Collapse
No announcement yet.

Invalid Database Key

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

  • Invalid Database Key

    Hallo zusammen.

    Mit dem folgendem SQL Statement erhalte ich die Fehlermeldung "invalid database key". Eine Fehlerprüfung ergab nichts, nach einem Backup/Restore besteht der Fehler weiterhin. Weiss jemand Rat?

    <pre>SELECT ADOSEN.JAHR, EXPOSITIONEN.STAMMNUMMER,
    Sum(EXPOSITIONEN.MSVAUSSEN) AS EXPS_NAMTLICH,
    Sum(EXPOSITIONEN.MSVINNEN) AS EXPS_INKORP,
    ADOSEN.SUMME AS EXPS_AMTLICH
    FROM EXPOSITIONEN INNER JOIN ADOSEN
    ON (EXPOSITIONEN.JAHR = ADOSEN.JAHR)
    AND (EXPOSITIONEN.STAMMNUMMER = ADOSEN.STAMMNUMMER)
    GROUP BY ADOSEN.JAHR, EXPOSITIONEN.STAMMNUMMER, ADOSEN.SUMME
    ORDER BY ADOSEN.JAHR, EXPOSITIONEN.STAMMNUMMER;</pre>

    Peter

  • #2
    Hallo,

    welche Datenbank wird verwendet und über welchen Zugriffsweg (BDE, ODBC, ADO, IBX, LOCAL SQL) erfolgt diese Abfrage? Tritt dieser Fehler auch dann auf, wenn die Abfrage von dem SQL-Tool abgeschickt wird, das die Datenbank zur Verfügung stellt

    Comment


    • #3
      Hallo,

      ich verwende IB6.1 und greife über IBO4 darauf zu. Das Gleiche tritt aber auch auf, wenn ich (testweise) IBX verwende, ebenso mit Interactive SQL oder isql. Bestenfalls kann ich die ersten 400 Datensätze lesen. Interactive SQL schafft es mal gerade, den ersten Satz auszulesen. Die folgenden werden mit NULL angezeigt und dann erscheint die Fehlermeldung.

      Pete

      Comment


      • #4
        Hallo,

        das hört sich nicht gut an :-(

        Was passiert, wenn eine neue Datenbank über ein als Schema exportiertes Script erzeugt wird? Tritt der Fehler dann immer noch auf

        Comment


        • #5
          Hallo,

          leider ja

          Comment


          • #6
            Hallo,

            dass würde ich den Fehler in der SQL-Anweisung suchen. Tritt das Problem bei der folgenden Abfrage immer noch auf?
            <pre>
            SELECT ADOSEN.JAHR, EXPOSITIONEN.STAMMNUMMER,
            Sum(EXPOSITIONEN.MSVAUSSEN) AS EXPS_NAMTLICH,
            Sum(EXPOSITIONEN.MSVINNEN) AS EXPS_INKORP
            FROM EXPOSITIONEN INNER JOIN ADOSEN
            ON (EXPOSITIONEN.JAHR = ADOSEN.JAHR)
            AND (EXPOSITIONEN.STAMMNUMMER = ADOSEN.STAMMNUMMER)
            GROUP BY ADOSEN.JAHR, EXPOSITIONEN.STAMMNUMMER
            </pre&gt

            Comment


            • #7
              Hallo Andreas,

              ja, das geht. ADOSEN.SUMME ist ein berechnetes Feld. Daran scheint es sonderbarerweise zu liegen. Ist ja ärgerlich. Wieso eigentlich? Ist das ein Bug? Wie läßt sich die Berechnung (JAN+FEB+MAR...etc.) mit einem Trigger bewerkstelligen? Ist das überhaupt empfehlenswert?

              Pete

              Comment


              • #8
                Hi,

                Ich konnte ähnlich wirres Verhalten auch häufiger beobachten. Schuld daran war immer die Order by Angabe.
                Versuch deine Statment mal ohne ORDER BY.

                Gruß
                Gesin

                Comment


                • #9
                  Hallo,

                  zum Test würde ich versuchen, ob sich ein Teil dieser Abfrage in einen VIEW verpacken lässt und die SELECT-Abfrage danach auf den VIEW zugreift und erst dann ORDER BY nutzt

                  Comment


                  • #10
                    Hallo Gesine, hallo Andreas,

                    vielen Dank für Eure Hilfe. Das mit dem View bzw. Verzicht auf "Order by" hatte ich übrigens schon ausprobiert - funktioniert ebenfalls nicht. Ich verzichte nun einfach auf das "Computed By"-Feld und setze bei Bedarf ein Update auf die entsprechende Tabelle. Glücklich bin ich damit zwar nicht aber es funktioniert wenigstens.

                    Pete

                    Comment

                    Working...
                    X