Ich bin gerade auf ein irritierendes Phänomen gestoßen: Ich setze auf einer dbf mit Index1 ein Scope. Wenn ich danach ein alias->(DbSeek(suchbegriff, , "index2")) mache mit einem suchbegriff, der eindeutig nicht im Scope-Bereich zu finden ist, dann findet der den doch. Frage ich den gefundenen RecNo() ab, zeigt der mir einen an, der eindeutig nicht im Scopebereich liegt.
Was ich mache:
alias->(OrdSetFocus(index1))
alias->(DbSetScope(SCOPE_BOTH, auftragsnummer))
alias->(DbSeek(suchbegriff, , "index2")) // Suchbegriff ist in keinem Satz im Scope-Bereich vorhanden
So wie ich Scopes verstehe ist das doch so, das ich suchen kann was ich will, solange ich den führenden Index (auf dem der Scope liegt) nicht ändere, darf keine Suchbedingung einen Satz außerhalb finden. Oder sehe ich das falsch?
Jan
Scope und Seek [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Scope und Seek [Erledigt]
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Scope und Seek
Aber genau das machst Du doch im DbSeek()! Der dritte Parameter bestimmt, dass in "index2" gesucht wird, und für diesen Index gibt es keinen Scope.solange ich den führenden Index (auf dem der Scope liegt) nicht ändere
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Scope und Seek
Hallo Jan,
leider siehst Du das falsch . Ich bin über das gleiche Problem gestolpert. Wenn ein Scope über einen Index eingesetzt wird, kann man nicht über einen anderen Index suchen ohne das der Scope aufgehoben wird.
Uli
leider siehst Du das falsch . Ich bin über das gleiche Problem gestolpert. Wenn ein Scope über einen Index eingesetzt wird, kann man nicht über einen anderen Index suchen ohne das der Scope aufgehoben wird.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Scope und Seek
Deswegen mache ich an solchen Stellen die DBF immer noch ein weiteres mal auf und dann kann ich damit machen was ich will.
PS. Geht das überhaupt so, wie Jan es vorhat? Er macht in ein und dem selben Alias eine Scope und will ihn dann zerbrechen, in dem er auf einem anderen Index sucht. Da wird doch der Satzzeiger verändert, oder nicht?
PS. Geht das überhaupt so, wie Jan es vorhat? Er macht in ein und dem selben Alias eine Scope und will ihn dann zerbrechen, in dem er auf einem anderen Index sucht. Da wird doch der Satzzeiger verändert, oder nicht?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scope und Seek
Hmm. Jetzt irritiert Ihr mich aber. Ich war immer der festen Überzeugung, das ich mit dem dritten Parameter in DbSeek() den führenden Index eben nicht ändere. Und daher im eingegrenzten Scope-Bereich suchen kann.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Scope und Seek
SET SCOPE/DbSetScope() setzt einen Indexfilter für den jeweils führenden Index. Wenn ich DbSeek() mit dem dritten Parameter nutze, schaltet die Engine für die Suche (vorübergehend) auf diesen Index (dritter Parameter) um. Führender Index und m.E. auch Scope bleiben zwar prinzipiell aktiv, aber für den gewählten - nicht führenden, nicht gescopten - Index spielt das keine Rolle. Damit kann ich auf diese Weise auch Datensätze erreichen, die die zu diesem Zeitpunkt irrelevante und auch kaum zu prüfende Scope-Bedingung nicht erfüllen. Die Einschränkung gilt in diesem Augenblick einfach nicht. Nach dem DbSeek() müsste die Scope-Bedingung geprüft werden.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scope und Seek
OK. Wieder was dazu gekernt
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.