AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Anzahl Datensätze in Statusbar
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl Datensätze in Statusbar

Ein Thema von zeras · begonnen am 19. Jun 2011 · letzter Beitrag vom 19. Jun 2011
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#1

Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 15:28
Datenbank: firebird • Version: 2.x • Zugriff über: Interbase
Ich möchte in einer Statusbar die Anzahl der Datensätze anzeigen.

Das müßte ja so gehen:

Delphi-Quellcode:
  if DM1.IBDatabase1.Connected then begin
    SB1.Panels[0].Text := Format('Anzahl Datensätze %d',[DM1.IBTable1.RecordCount])
  end;
Dies mache ich zur Zeit mit einem Timer. Ist aber bestimmt nicht die eleganteste Art.
Bei den IBTable gibt es ja auch viele Ereignisse, aber wie soll ich das machen? Dann müßte ich ja fast bei jedes Ereignis den obigen Code eintragen oder gibt es ein Ereignis, welches immer eintrifft, wenn etwas an den Tabelle geändert wurde?
Beim Start des Programms müßte die Anzahl gleich drinstehen und dann bei jeder DB Aktion dann entsprechend mehr oder weniger anzeigen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 15:55
Hallo,

Zitat:
Dann müßte ich ja fast bei jedes Ereignis den obigen Code eintragen
Das sowieso nicht.
Schreibe eine Methode, die obigen Code aufruft.
Da du nicht schreibst, wie du deine Daten eingibst., was soll man dazu antworten ... ?

Das RecordCount würde ich durch ein Select Count(*) einer zusätzlichen Query ersetzen.
RecordCount holt alle Daten lokal rüber und zählt dabei die Datensätze.

Zitat:
fast bei jedes Ereignis
Also die Anzahl der Datensätze ändert sich nur beim Insert und Delete, oder ?


Heiko
Heiko
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 16:05
Bei vielen Komponenten gibt es ja ein OnChange Ereignis. Vielleicht wäre das der richtige Ansatz...

LG; hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#4

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 16:44
Ich nutze folgende Komponenten, um über Firebird auf die Daten zuzugreifen:
- IB Database
- IB Table
- Datasource.
Dazu noch einzelne DBEdit Felder zum Eintragen und ein SG von TMS zur Gesamtanzeige.
Bei Datasource gibt es ein OnDataChange. Vielleicht geht das.

Das RecordCount würde ich durch ein Select Count(*) einer zusätzlichen Query ersetzen.
RecordCount holt alle Daten lokal rüber und zählt dabei die Datensätze.
Zur Zeit habe ich nur eine Gesamtübersicht im Grid, aber vielleicht filtere ich die dann auch mal, wenn es zu viele werden. Dann wäre dein Tipp auf jeden Fall wichtig, da ich ansonsten falsche Werte bekomme.

Werde mit euren Tipps weitermachen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 16:47
Das Update der Anzahl der Datensätze macht aber nur Sinn, wenn du das Grid auch aktualisierst, sonst ist die Angabe inkonsistent
Markus Kinzler
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#6

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 16:51
Das Update der Anzahl der Datensätze macht aber nur Sinn, wenn du das Grid auch aktualisierst, sonst ist die Angabe inkonsistent

Hierzu habe ich keine Zeile programmiert, nur die Verbindungen hergestellt. Soweit klappt das erst einmal.
Wenn ich im Grid auf eine Zeile klicke, dann werden in den DBEditfildern die Daten der angeklickten Zeile angezeigt, die ich dann ändern kann.
Ich bin zwar nicht der Datenbankexperte, aber das scheint zu gehen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain

Geändert von zeras (19. Jun 2011 um 18:14 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 16:59
Solange du der einzige Benutzer bist. Bei MU könnte die Anzahl abweichen, wenn andere Benutzer DS hinzufügen oder löschen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Anzahl Datensätze in Statusbar

  Alt 19. Jun 2011, 17:12
In der RxLib gibt es schon eine Komponente (TDbStatusLabel in Unit RxDbctrl.pas) die Anzahl der Datensätze und die aktuelle Position innerhalb der Datenmenge anzeigen kann.
Die Komponente ist unabhängig von der Art der Datenquelle und setzt nur eine DataSource vorraus.
Ich denke dass man durch Analysieren des Sourcecode eine leicht abgespeckte Lösung bekommen kann.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz