Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Möglichkeit gefilterte Records einer Query zu zählen?? (https://www.delphipraxis.net/114549-moeglichkeit-gefilterte-records-einer-query-zu-zaehlen.html)

spaxxn 27. Mai 2008 12:11

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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...

alzaimar 27. Mai 2008 12:20

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
Ich kann das Problem nicht nachvollziehen.

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

BDE, Delphi 6
ADO, Delphi 6

Codewalker 27. Mai 2008 13:36

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
Alternativ: Es gibt doch auch die Eigenschaft AffectedRows (bei Queries). Teste doch, was diese anzeigt.

spaxxn 27. Mai 2008 13:44

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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.

JuliaBecks 27. Mai 2008 14:00

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
ich habe mein recordcount in der DataSourceOnChange drin und es funktioniert nicht!
findet onFilter vorher statt oder bin ich jetzt völlig durcheinander :-)

spaxxn 27. Mai 2008 14:02

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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.

JuliaBecks 27. Mai 2008 14:45

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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

Delphi-Quellcode:
Accept := Ort = 'München';
weil wenn du dort nichts filterst wirst du ja nicht feststellen können, ob recordcount auch das richtige liefert. :gruebel:

alzaimar 27. Mai 2008 14:47

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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)

JuliaBecks 27. Mai 2008 14:51

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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

spaxxn 27. Mai 2008 14:57

Re: Möglichkeit gefilterte Records einer Query zu zählen??
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz