AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrageergebnis aktualisieren

Abfrageergebnis aktualisieren

Ein Thema von FBrust · begonnen am 19. Nov 2002 · letzter Beitrag vom 4. Dez 2002
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
639 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Abfrageergebnis aktualisieren

  Alt 19. Nov 2002, 20:43
Hallo,

in meinem Programm fülle ich mit dem folgenden Code eine Checklistbox:

Code:
    with dmQueries.qryCustList do begin
      if not Active then
         Active := True;
      while not Eof do begin
        clbCust.Items.Add(FieldByName('strShortName').AsString);
        Next;
      end;
      Active := False;
    end;
In der Abfrage qryCustList steht folgender SQL-Befehl:
Code:
SELECT strShortName
FROM SD_CUST.DB
ORDER BY strShortName;
Das Problem ist folgendes: Wenn ich jetzt in die Tabelle SD_CUST.DB einen neuen Datensatz schreibe, zeigt das Abfrageergebnis nur die bisher vorhandenen Werte. Erst wenn ich das Programm beende und neu aufrufe, erscheint auch der neue Wert in der Checklistbox und das obwohl die Abfrage nach Einlesen in die Checklistbox abgeschaltet wird (Active := False.

Weiss jemand wie dieses Verhalten zustandekommt und wie man es abschaltet?


Danke
Frank
  Mit Zitat antworten Zitat
LCS

Registriert seit: 15. Okt 2002
Ort: Sachsen
6 Beiträge
 
Delphi XE Professional
 
#2
  Alt 22. Nov 2002, 12:08
Hi
mit was für einer Datenbank arbeitest du denn? Für mich sieht das so aus, als würden da zwei getrennte Transaktionen laufen. Auch wenn die Abfrage geschlossen und neu gestartet wird, kann sie die neu eingetragenen Datensätze erst sehen, wenn deren Transaktion betätigt und abgeschlossen wurde. Das passiert normalerweise beim Beenden, daher das merkwürdige Verhalten

Gruss Lothar
Zwei Dinge sind unendlich. Das Universum und die menschliche Dummheit. Beim Universum muss ich nochmal drüber nachdenken. (Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#3
  Alt 26. Nov 2002, 13:23
Hi FBrust,

möglicherweise öffnest Du an anderer Stelle das Query-Object. Um sicher zu gehen, dass wirklich neu eingelesen wird kann man folgendes schreiben:
Code:
    with dmQueries.qryCustList do begin
      if Active then
        Close;
      Active := True;
      while not Eof do begin
        clbCust.Items.Add(FieldByName('strShortName').AsString);
        Next;
      end;
      Close;
    end;
gruß, harrybo
Harry Boldt
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
639 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4
  Alt 26. Nov 2002, 19:52
Hallo,

danke für Eure Antworten.

@LCS: Die Datenbank ist BDE, keine Transaktionen, nix, wenn man einen neuen Kunden eingegeben hat, erfolgt ein Post auf die Tabelle, und sie wird deaktiviert (Active := False)

@Harrybo: Ich hab die Query vor dem Einlesen in die Checklistbox geschlossen und wieder aktiviert (wie in Deinem Beispiel genannt): ohne Erfolg...die Abfrage kriegt die Änderungen erst mit, wenn das Programm neu gestartet wird

Mal sehen, vielleicht gehe ich direkt über die Tabelle...


Grüsse
Frank
  Mit Zitat antworten Zitat
Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#5
  Alt 4. Dez 2002, 13:06
Hi FBrust, schließt Du Deine Abfrage denn nun mit Close oder weiterhin mit Active := false? Close schließt verbindlich die Abfrage und setzt selbst intern Active := false.
Harry Boldt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf