![]() |
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... |
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 |
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.
|
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. |
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 :-) |
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:
Als kleines Beispiel aus einem Projekt. Das klappt, zumindest bei mir.
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; |
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:
weil wenn du dort nichts filterst wirst du ja nicht feststellen können, ob recordcount auch das richtige liefert. :gruebel:
Accept := Ort = 'München';
|
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)
|
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 |
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. |
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