Announcement

Collapse
No announcement yet.

Query.ExecSQL und GPF

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

  • Query.ExecSQL und GPF

    Guten Tag,<br> ich habe ein Problem mit Query.ExecSQL. Die Anwendung ist mittlerweile in die Jahre gekommen und wurde noch mit D2 entwickelt. Eigentlich läuft sie seit ca 1 1/2 Jahren ziemlich stabil. Bis auf gestern. Da meldete sich doch ein Anwender und erzählt mir, dass es zu einer Schutzverletzung kommt. Nach einigen Nachforschungen hat sich folgendes ergeben.<br>
    <pre>

    Try
    Query.Close;
    Query.SQL.Clear;
    Query.SQL.Add('DELETE FROM DATABASE WHERE A<=B');
    {der SQL-Ausdruck ist hier sinngemäß wiedergegeben.}
    Query.ExecSQL; // <- Hier kommt die Schutzverletzung
    ...
    Except
    On E : EDataBaseError
    ... // Kein EDataBaseError
    On E : EDBEngineError
    ... // Kein EDBEngineError
    On E : Exception
    ShowMessage(E.Message); // Hier wird die Schutzverletzung angezeigt
    end;

    </pre>
    <br>
    Was könnte der Grund für die Schutzverletzung sein? Bei den anderen Anwendern funktioniert die Sache einwandfrei. Was soll ich tun? Wo könnte ich ansetzen?<br>:-) Jens Schumann

  • #2
    Hallo,

    leider fehlen bei dieser Frage einige wesentliche Angaben: <br>
    1. Welche Datenbank/Welcher Datenbanktreiber wird verwendet? <br>
    2. Welche BDE-Version wird verwendet? <br>
    3. Wurde das Programm mit Delphi 2 compiliert?<br>
    4. Was genau steht im Exception-Dialog?

    In Abhängigkeit von der Antwort auf die erste Frage würde ich zuerst prüfen, ob auf diesem Rechner auch die gleiche Treiberversion/BDE-Version installiert ist wie auf allen anderen Rechnern.
    &#10

    Comment


    • #3
      Hallo,<br>
      zu 1. Paradox 5.0
      zu 2. Version 5.01
      zu 3. Ja, das Programm wurde mit D2 compiliert. (auch heute noch)
      zu 4. Allgemeine Schutzverletzung bei Adresse sowieso<br>
      :-) Jens Schuman

      Comment


      • #4
        Hallo,

        bei einer Paradox-Datenbank bleiben nicht mehr viel Fehlerquellen üblich. Wenn der Fehler auch dann auftritt, wenn die Paradox-Datenbanktabellen auf dem lokalen Laufwerk liegen und auch der BDE-Eintrag NET DIR auf ein lokales Laufwerk verweist, bleibt nur eine beschädigte BDE-Installation als Fehlerquelle übrig. Ich würde daher prüfen, ob zusätzliche Programme (die die BDE verwenden) auf diesem Rechner installiert wurden. Gerade COREL-Anwendungen sind dafür berüchtigt, BDE-Installationen zu beschädigen.

        Borland hat zu diesem Probleme mehrere TI's veröffentlicht, die folgendes raten: <br>
        1. Alle Anwendungen deinstallieren, die die BDE verwenden. <br>
        2. Registry von Hand aufräumen <br>
        3. Das eigene Programm mit der eigenen BDE-Version neu installieren

        Comment


        • #5
          Hallo Andreas,<br>vielen Dank für die Antwort.<br>Das Problem hat sich mittlerweile gelöst. Es war eine kaputte Indexdatei, also die *.px.<br> Die Datenbank besteht aus einer einzigen Paradoxtabelle und hat lediglich 4 Felder. Eins dieser Felder ist ein Memofeld. Das besondere an der Tabelle ist, dass die dazugehörige mb-Datei 2,5 GByte groß ist !!!. Manchmal habe ich das Gefühl, das bei Dateien dieser Größenordnung etwas nicht mit rechten Dingen zu geht.<br> Jens Schuman

          Comment

          Working...
          X