Hallo zusammen,
ich habe ein Problem mit OnFilterRecord und Interbase. Ein größeres Projekt wurde von Paradox zu Interbase überführt, allerdings unter Beibahaltung von Table-Komponenten (TIBTable) statt mit einer kompletten Umstellung zu Querys. Der Quelltext wurde witgehend so belaaaen wie er vorher unter Paradox jahrelang funktionierte. Nun gibt es aber beim Filtern ein Problem:
Vorbedingungen:
- Im Datemnodul ist die Komponente tblBuch definiert und dazu die Datasource DSBuch.
- in einem Formular ist ein TDBGrid mit der Datasource DSBuch aus dem Datenmodul verbunden.
- im Datenmodul gibt es die Methode FilterRecord, die (per Debugger / Breakpoint geprüft) auch aufgerufen wird.
- zum Test wurde bis auf "accept := false" alle anderen Anweisungen entfernt.
- trotz Filter werden weiterhin ALLE Datensätze angezeigt.
Delphi-Quelltext
1: 2: 3: 4:
| procedure TdmBuecher.FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin accept:=false; end; |
Ich kann im Debugger nachverfolgen, wie diese Routine für jeden Datensatz aufgerufen wird und dass FALSE für accept eingetragen wird. Trotzdem werden im DBGrid alle Datensätze angezeigt.
Gibt es noch weitere Properties die hierbei eine Rolle spielen können? Ich habe extra schon alles Drumherum (setzen der Filterkriterien etc.) soweit "abgestrippt" dass nur das allernotwendigste übrig ist (und kaum noch Fehler mit falschen Vergleichen oder ähnlichem enthalten sein können) und trotzdem geht es nicht.
Siegbert
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt