Announcement

Collapse
No announcement yet.

[IB6,IBX4.52] Fehlermeldung bei StoredProc auf dem Server

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

  • [IB6,IBX4.52] Fehlermeldung bei StoredProc auf dem Server

    Halle zusammen,

    folgendes Problem: Ich habe lokal eine Anwendung mit IB6 erzeugt, incl Stored Procedures. Die Anwendung läuft einwandfrei. Wenn ich die DB nun auf den Server lege, bekomme ich beim 2. Aufruf der Stored Procedures folgenden Fehler:

    SQL Error Code = -804
    SQLDA missing or incorrect version, or incorrect number/type of variables

    Wie gesagt nur wenn die DB auf dem Server liegt. Hier der Code:

    SP_GetAuftragNr.Close;
    SP_GetAuftragNr.UnPrepare;
    SP_GetAuftragNr.ParamByName('AUFTRAGID').AsInteger :=Tagebuch['Auftrag_ID'];
    SP_GetAuftragNr.Prepare;
    SP_GetAuftragNr.ExecProc;

    Bei ExecProc tritt dann der Fehler auf.
    Wenn ich nun vor dem Close ein Transaction.Commit; mache, funzt der Aufruf der Procedure einwandfrei, beim nächsten Aufruf (ohne commit) gibts die bekannte Fehlermeldung.

    Jetztedle: Woran liegts, daß es Lokal funktioniert und auf dem Server nur über ein vorheriges commit?

    Wolfgang

  • #2
    Hallo,

    warum wird UnPrepare aufgerufen? Normalerweise wird UnPrepare nur dann benötigt, wenn sich die SQL-Anweisung ändert. Aber wenn nur der Parameter-Wert ausgetauscht wird, ist das niemals der Fall, d.h. alle SQL-Server verwenden einen Platzhalter für den Parameter im SQL-Text, und schicken beim Aufruf den exakten Parameterwert hinterher.

    Solange der Name der Stored Procedure gleich bleibt, richtet UnPrepare mehr Schaden als Nutzen an

    Comment


    • #3
      Hallo Andreas,

      der Fehler tritt auch ohne UnPrepare auf (UnPrepare habe ich nur deswegen eingefügt). Wie gesagt: Auf dem Server kommt der Fehler, lokal funktioniert der Aufruf (dieselbe Datenbank).

      Wolfgan

      Comment


      • #4
        Hallo,

        um auszuschließen, das die Ursache für dieses Problem in einer leider seit längeren Zeit bekannten InterBase-Macke liegt, würde ich zum Test folgendes machen: <br>
        1. InterBase-Datenbank über ein SQL-Script neu anlegen (dieses Script kann über die IBConsole generiert werden). <br>
        2. Einige Testdatensätze eintragen <br>
        3. Programm ruft die Stored Procedure auf. <br>
        Tritt dann das Problem immer noch auf?#

        P.S: Unabhängig von diesem Test, was passiert, wenn der lokale Zugriff ebenfalls über das TCP/IP-Netzwerkprotokoll (LOCALHOST) erfolgt?
        &#10

        Comment


        • #5
          Hallo Andreas,

          also der Zugriff über localhost ergibt die gleiche Fehlermeldung. Die DB neu erstellen dauert einige Zeit.

          Bis dann
          Wolfgan

          Comment


          • #6
            So, der Test mit der neuen DB lief auch nicht. Gleiche Fehlermeldung.
            An was liegts? Zuviele stored procedures?

            Wolfgan

            Comment


            • #7
              Hallo,

              wenn das Problem auch mit einer frisch erzeugten InterBase-Datenbank auftritt, kann nicht die seit längerem bekannte Macke der Grund dafür sein (dieses von mir anfangs vermutete Problem tritt nur dann auf, wenn die Datenbankstruktur mehrfach geändert wurde, ohne das in der Zwischenzeit ein vollständiger Backup/Restore-Zyklus dazwischen lag)

              Comment


              • #8
                Vielleicht ein ähnliches Problem wie bei mir (Forum Interbase), dabei wurde beim 2. Aufruf auch eine Fehlermeldung erzeugt.<br>
                Ich habe alle empfohlenen Updates und korrkturen vorgenommen, ohne Erfolg.<br>
                Einzig der Ersatz dieser einen Abfrage durch ein Select in IBDataset funktioniert. Der Performance - Verlust hängt von der Procedure ab, für einen Wert aber ok.<br>
                Gruss F

                Comment


                • #9
                  Hallo Günter,

                  Inzwischen habe ich auch (fast) alle StoredProc durch IBDataSets ersetzt. Nun laufen alle wieder...

                  Grüsse
                  Wolfgan

                  Comment

                  Working...
                  X