Seite 1 von 1

Scope und Filter [ERLEDIGT]

Verfasst: Mi, 07. Apr 2021 17:17
von Koverhage
Ich setzte in einer Tabelle einen Scope, z.B.
ge->(OrdSetFocus(2))
ge->(DbSetScope( SCOPE_BOTH, str( kdnr, 9 )+cVertragsart+str(nFolgeNr,1) ) )
ge->(dbGoTop())

so weit so gut

Jetzt kommt der Wunsch auf bestimmte Sätze auszublenden.
Ich möchte keinen zusätzlich Index haben, im Mittel haben die Scopes max. 20 Datensätze.

Ich arbeite so gut wie nie mit Filtern, kann ich jetzt (klar kann ich, aber hat der auch einen Wert) innerhalb des Scopes einen Filter setzen ?

Re: Scope und Filter

Verfasst: Mi, 07. Apr 2021 17:29
von Jan
Klaus,

klar. Das widerspricht sich ja nicht. Allerdings ist es immer gut erst den Scope zu setzen, und auf die dann kleinere Satzmenge den Filter. Ist erheblich schneller als anders herum.

Jan

Re: Scope und Filter

Verfasst: Mi, 07. Apr 2021 17:35
von Koverhage
Jan,
deswegen innerhalb des Scopes ;-)

Re: Scope und Filter

Verfasst: Mi, 07. Apr 2021 17:45
von Jan
Klaus,

das hatte ich auch so verstanden. Ich wollte Deine Vorgehensweise damit nur bestätigen.

Jan

Re: Scope und Filter

Verfasst: Mi, 07. Apr 2021 19:53
von Tom
Das ist sogar best practice. Erst den Scope setzen, dann filtern. Im Gegensatz zum DbSetScope() benötigt das DbSetFilter() allerdings ein explizites DbGoTop(), um den Zeiger auf den ersten Treffer zu setzen. Bei Scopes passiert das automatisch.

Re: Scope und Filter

Verfasst: Do, 08. Apr 2021 6:56
von Koverhage
Danke.