Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Scope auf leeren Wert [ERLEDIGT]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 16942
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Scope auf leeren Wert [ERLEDIGT]

Beitrag von Manfred » Mo, 24. Okt 2016 16:45

ich müßte einen Scope bilden, der auch mal leer sein kann. Sprich dann darf nichts angezeigt werden. Geht das überhaupt? Im Moment sehe ich das so, oder aber ich stelle mich zu deppert an.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Scope auf leeren Wert

Beitrag von Tom » Mo, 24. Okt 2016 16:51

Du meinst einen Scope, dessen Rückgabemenge quasi null ist, der also keine Datensätze einschließt? Das ist gang und gäbe. EoF() ist in der Workarea die ganze Zeit .T. .

Oder meinst Du einen Scope ohne Bedingung? DbSetScope(SCOPE_BOTH,NIL) - so etwas?
Herzlich,
Tom

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1823
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Scope auf leeren Wert

Beitrag von Herbert » Mo, 24. Okt 2016 16:56

Falls leer (Blanks? Null? oder NIL?), setze die Bedingung auf einen nie zu erfüllenden Wert...
Falls du mit irgendeinem SQL sprichst, könntest einen Query erstellen, der in diesem Fall nicht ausgeführt würde und entsprechend hättest keine Daten zum Anzeigen oder Verarbeiten.
Grüsse Herbert
Immer in Bewegung...

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 16942
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Scope auf leeren Wert

Beitrag von Manfred » Mo, 24. Okt 2016 17:02

ok, anders formuliert.
Tabelle mit Index auf Datum Unique und auf Datum ohne Unique
jetzt wird die Tabelle einmal mit dem Unique Index im Browse gezeigt und einem Scope auf Monatsanfang bis Monatsende.
das klappt.
Die Tabelle wird mit dem 2.Index dazugeöffnet in einem weiteren browse, aber jetzt mit einem Scope auf das jeweilige Tagesdatum, auf dem der Unique Index gerade steht. Wenn es einen Satz dazu gibt, dann klappt das, wenn es keinen gibt, dann wird alles angezeigt. Also der Scope scheint überhaupt nicht zu wirken.

Aber ich sehe gerade, Herbert hat einen Tipp dazwischengeworfen, den ich erstmal versuchen werde.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 16942
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Scope auf leeren Wert [ERLEDIGT]

Beitrag von Manfred » Mo, 24. Okt 2016 17:07

auh man, welche Blamage. Darauf hätte ich auch alleine kommen müssen. Sieht so aus, als wenn es so klappt.
Danke Herbert.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Scope auf leeren Wert [ERLEDIGT]

Beitrag von Tom » Mo, 24. Okt 2016 17:08

Wenn dieselbe Tabelle einen Unique-Index auf einem Datumswert hat und einen weiteren Index auf dem selben Datumswert ohne Unique-Eigenschaft, dann kann der Fall nie eintreten, von dem Du da sprichst. Ein Datumswert, der im Unique-Index enthalten ist, muss auch mindestens einmal im zweiten Index vorhanden sein.

Wie sieht Deine Scope-Bedingung für den zweiten Fall aus? Datumssachen sind immer schwierig, wenn man mit CtoD/DtoC arbeitet, weil dann ganz anders sortiert wird.
Herzlich,
Tom

Antworten