AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Möglichkeit gefilterte Records einer Query zu zählen??
Thema durchsuchen
Ansicht
Themen-Optionen

Möglichkeit gefilterte Records einer Query zu zählen??

Ein Thema von JuliaBecks · begonnen am 27. Mai 2008 · letzter Beitrag vom 27. Mai 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#11

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 13:11
Kommt ganz darauf an, wie die Anwendung(-en) bei euch laufen.

Wir haben Kunden, deren Aussenstellen noch mit Zweikanal-ISDN angebunden sind, da würde ich mir soetwas verkneifen. Wird es nur hausintern verwendet, kann die serverseitige Abwicklung durchaus vorteilhaft sein.


Btw: Hast du es mal mit einer anderen Querykomponente versucht?

Bei mir zeigt der RecordCount nach dem Ändern des Filters den richtigen Wert an...
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 13:20
Ich kann das Problem nicht nachvollziehen.

Query mit Filtered := False => 80 Records.
Query mit Filtered := True => 4 Records.

BDE, Delphi 6
ADO, Delphi 6
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 14:36
Alternativ: Es gibt doch auch die Eigenschaft AffectedRows (bei Queries). Teste doch, was diese anzeigt.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#14

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 14:44
AffectedRows wird hier nicht den Nutzen haben, der gefordert ist.

AffectRows gibt Auskunft darüber, wieviele Zeilen von dem letzten abgesendeten Query(z.B. Update) betroffen waren. Da der Filter aber nur clientseitig gesetzt wird, hat das keinen Einfluss.
  Mit Zitat antworten Zitat
Benutzerbild von JuliaBecks
JuliaBecks

Registriert seit: 6. Dez 2006
45 Beiträge
 
#15

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:00
ich habe mein recordcount in der DataSourceOnChange drin und es funktioniert nicht!
findet onFilter vorher statt oder bin ich jetzt völlig durcheinander
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#16

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:02
Den gültigen RecordCount findest du im an den DataSource gebundenen Dataset. In deinem Fall wohl ein QuerySet.

Der Filter muss auch am Dataset aktualisiert werden.

Was machst du im DataSourceOnChange?

EDIT:
Delphi-Quellcode:
  if Assigned(gData.DataSource) and Assigned(gData.DataSource.DataSet) then
  begin
    gData.Filter.Active := False;
    gData.DataSource.DataSet.Filtered := False;
    gData.BeginUpdate;
    gData.DataSource.DataSet.Filter := '';
    dmMain.MainGridFilter.Clear;
    gData.EndUpdate;
    gData.DataSource.DataSet.Filtered := True;
    gData.Filter.Active := True;
    if dmMain.cdsAddress.Active then
    begin
      StatusBar1.Panels[4].Text := 'Datensätze mit Filter: ' + IntToStr(dmMain.cdsAddress.RecordCount);
    end;
  end;
Als kleines Beispiel aus einem Projekt. Das klappt, zumindest bei mir.
  Mit Zitat antworten Zitat
Benutzerbild von JuliaBecks
JuliaBecks

Registriert seit: 6. Dez 2006
45 Beiträge
 
#17

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:45
ja danke das sieht ja ganz gut aus, nur du sagst filtered := true und welche Filterung hast du im FilterRecord? Gibts dort irgendwelche Einschränkungen z.b

Accept := Ort = 'München'; weil wenn du dort nichts filterst wirst du ja nicht feststellen können, ob recordcount auch das richtige liefert.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:47
Du kannst einfach Filterkriterien direkt in die 'Filter'-Eigenschaft reinschreiben. Ansonsten musst Du nicht nur das 'OnFilterRecord'-Ereignis definieren, sondern dem Dataset auch sagen , das es filtern soll (Filtered := True)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von JuliaBecks
JuliaBecks

Registriert seit: 6. Dez 2006
45 Beiträge
 
#19

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:51
ja ok das wußte ich jetzt nicht weil bei uns immer mehrzeilige Filtereinschränkungen in das FilterRecord geschrieben werden.

was ist das gData überhaupt? ein Grid wohl nicht
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#20

Re: Möglichkeit gefilterte Records einer Query zu zählen??

  Alt 27. Mai 2008, 15:57
gData ist in dem Fall ein TdxDBGrid. Das sollte aber egal sein. Die Funktion die ich dir gepostet habe, war zum Leeren des Filters, darum Filter := '';

Edit: Rechtschreibung und so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:36 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