Announcement

Collapse
No announcement yet.

Problem mit _qsq-Dateien

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

  • Problem mit _qsq-Dateien

    Nachdem eine Abfrage ausgeführt wurde, bleiben zeitweise _qsq-Dateien (ca 4 MB groß) auf der Platte zurück, die ich nur manuell entfernen kann.
    Warum ist dies so? Ist das ein Fehler in der BDE? Die Query-Abfrage wird ordentlich ausgeführt, nicht abgebrochen und auch anschließend wieder geschlossen. Trotzdem immer wieder diese Dateien.

  • #2
    Hallo,

    unter welcher Windows-Version passiert das (nur aus Interesse)? Wenn alle TTable/TQuery...-Instanzen automatisch beim Programmstart aktiviert und erst beim Programmende automatisch geschlossen werden, würde ich diese Vorgehensweise ändern. Vor dem Compilieren werden alle Datenquellen deaktiviert und erst in <b>TDataModule.OnCreate</b> aktiviert. Als Reaktion zu <b>TDataModule.OnDestroy</b> wird dann alles in der richtigen Reihenfolge (fals verknüpfte Datenmengen verwendet werden) deaktiviert. In diesem Fall sollten die BDE-Sessions ordnungsgemäss beendet werden, so dass die BDE auch alle eigenen temp. Hilfstabellen löscht

    Comment


    • #3
      Ich habe weiter geforscht und kann den Fehler jetzt nachstellen. Der Fehler tritt auf, wenn 2 Programme gleichzeitig die BDE nutzen (auch bei unterschiedlichem Alias). Programm 1 scannt laufend eine beliebige Tabelle.<br>Programm 2 führt eine parametrierte Abfrage (TQuery) über mehrere Tabellen aus (die Tabelle, welche Programm 1 scannt, ist nicht beteiligt). Dann bleiben manchmal _qsq??.db Dateien zurück, deren Größe ist interessanterweise meist 3854 KB. Auch nach dem Schließen der Abfrage (active := false) oder nach Programmende bleiben die Dateien erhalten. <br>Umgebung: Delphi 4 unter NT 4.0 Servicepack 5
      <br>irgendeine Idee

      Comment


      • #4
        Hallo,

        nutzen beide BDE-Anwendungen den gleichen Eintrag für die TSession-Eigenschaft <b>PrivateDir</b> oder wird der Eintrag nicht gesetzt? Wenn ja, würde ich jeder Anwendung ein eigenes privates Verzeichnis zuordnen (Enthält PrivateDir keinen Wert, werden die temporären Dateien automatisch in dem Verzeichnis gespeichert, das bei der Initialisierung der BDE aktuell war)

        Comment


        • #5
          Danke für die Anregung, Herr Kosch, aber auch das ist nicht die Ursache. Auch beim Setzen von unterschiedlichen Verzeichnissen und auch bei Verwendung der Session-Komponente ändert sich nichts am Fehlverhalten.<br>
          TQuery (Programm 2) fragt allerding eine ziemlich große Datei ab. Bei wenigen Datensätzen in I2_egdat tritt der Fehler nicht auf.<br><br>
          I2_egdat enthält ca 25000 Datensätze (Dateigrösse ca 3,7 MB),<br> I2_konte enthält 64 Datensätze (Dateigrösse 8 KB)<br><br>

          Hier die sql-Anweisung<br><br>
          select *<br>
          from "I2_egdat.db" d left join "i2_konte.db" d1 on(d.Konto = d1.Konto)<br><br>

          Mit dem Explorer (suchen nach _qsq*.*) kann man die Zwischendateien beobachten.<br>

          Die erste Anwendung scannt derweil dauernd eine beliebige Tabelle <br>
          Ich habe auch schon versucht, die BDE-Einstellungen zu verändern, leider auch ohne Erfolg. Mein Rechner hat 128 MB RAM, auf einem Laptop mit 64 MB tritt der Fehler ebenfalls auf.<br>
          Noch irgendeine Idee? Oder sollte ich ein Löschprogramm schreiben, das die _qsq's regelmäßig löscht

          Comment

          Working...
          X