Announcement

Collapse
No announcement yet.

Fehler in ZEOS und ein Anzeigenproblem

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

  • Fehler in ZEOS und ein Anzeigenproblem

    Guten Tag zusammen,

    meine Umgebung:
    Delphi XE2 archi
    ZEOS 7.1.0 beta
    ZConnection
    TZQuery
    TZUpdateSQL
    TDatase
    DBGrid

    Zuerst zum Fehler in Zeos (vielleich hilft das auch anderen mit dem gleichen Problem)

    Unit ZSQLUpdate, procedure TZUpdateSQL.PostUpdates
    Das DBGrid zeigt über eine visuelle Komponente TZQuery in Verbindung mit TDataset eine Ergebnismenge an. Änderungen werden über eine TUpdatesql gesteuert.

    Parallel hierzu werden Daten aus einer Textdatei eingelesen und mit einer dynamisch erzeugten TZQuery eingefügt. Diese nutzt nicht die UpdateSQL
    Setze ich die Anzeige der visuellen Komponente nach dem Einlesen neu mit close, setzen der Params und open, so wird das richtige Ergebnis im Grid dargestellt (Hier wird durch Anklicken von Schaltflächen das Anzeigeergebnis verändert.)

    Lösche ich jetzt einen der neuen Datensätze, so kommt es zu einer ZSQLException in oben genannter Roputine.-
    Der Fehler entsteht beim Setzen des Connection.cursors in der Unit TZAbstractConnection und der procedure HideSQLHourGlass
    bei der Abfrage "if not FSqlHourGlass"

    Nehme ich in der erstgenannten Procedure die beiden Anweisungen raus läuft alles wunderbar:

    Code:
      //if Dataset is TZAbstractRODataset then
        //(Dataset as TZAbstractRODataset).Connection.ShowSqlHourGlass;
    Ich hoffe das hat keine weiteren Auswirkungen

    __________________________________________________ ________________________


    Nun aber zu meinem Anzeigefehler
    Nach dem Einlesen der Daten sind diese auch korrekt in der DB. Ich habe das Einfügen in eine eigenen Transaction gekapselt und beende das dann mit commit.
    Im Anschluß wird die visuelle Komponente TZQuery geschlossen und mit den gleichen Parametern wieder geöffnet. Das Ergebnis ist: leer

    Klicke ich im Fenster auf eine andere Auswahl und wieder zurück ist alles da.
    Das verstehe ich jetzt nicht. Kann ich das irgendwie erzwingen, dass die Daten angezeigt werden? Ich möchte ungern den Connect zur DB beenden und neu herstellen. Das erscheint mir denn doch etwas zu heftig.
    Übrigens auch ohne manuelle Transaction ändert sich nichts. Die Connection hat "autocommit" und "tireadcommit" gesetzt.

    Danke für eure Hilfe und Gruß

    Peter

  • #2
    Nach weiteren Versuchen, kann es sein ich bin einfach zu schnell mit dem Wunsch der Anzeige? Gibt es ein Ereignis für das Datenbankupdate?
    Datenbank ist Firebird embedded protocol firebirdd-2.5

    Gruß

    Peter

    Comment


    • #3
      Wei wäre es erstmal erstmal mit einem Update auf zeosdbo-7.1.4-stable?

      Comment


      • #4
        Hallo Bernhard,

        vielen Dank für den Hinweis.
        Nachdem ich auf die 7.1.4 geändert habe tritt der Fehler immer noch auf.
        Ich habe, wie oben dargestellt, die Zeilen wieder auskommentiert. Das läuft erwartungsgemäß.

        Die Anzeige habe ich mit dem Ereignis on Commit regeln können.
        Hier frage ich die aktuelle Ansicht des Users ab (also ob die Daten angezeigt werden). Vielleicht kann mir jemand sagen wie ich den Sender auswerte?
        (Sender as TZQuery).name funktioniert nicht.

        Vielen Dank und Gruß

        Peter

        Comment

        Working...
        X