DbSeek ist .F., der Satz steht aber korrekt

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

DbSeek ist .F., der Satz steht aber korrekt

Beitrag von Jan »

Ich bin mir nicht sicher, ob das eine ADS-Spezialität ist. Aber vor der Umstellung lief der Code sauber.

Ich hatte ja vergangenes Jahr eine Reihe von DB-Funktionen in eine Sequenze-Schleife gelegt, weil es ständig nur noch Betriebssystemfehloer gab nach der Serverumstellung. U. a. auch DbSeek(). Ich habe mir eine Funktion geschrieben, die drei Parameter übergibt: Suchbegriff, lSoftSeek, cSuchindex. Der erste Parameter ist natürlich zwingend, die anderen nicht. Wenn ich auch aus Angewohnheit den Indexnamen meistens mitgebe.

Nun ist mir gerade fogendes aufgefallen: Eine Mitabreiterin sprach mich darauf an, das Daten auf den Ausdrucken fehlen würden. Die waren vor der Umstellung immer da. Ich bin dann mal im Debugger durchgegangen, und war irritiert: Die Parameter in der myDbSeek() waren: cSuchbegriff, NIL, NIL. Also nichts ungewöhnliches. Das DbSeek() in der Sequenze-Schleife gab aber ein .F. zurück! Obwohl der Suchbegriff definitiv vorhanden ist, und es auf dieser dbf auch nur einen einzigen Index gibt, der automatisch beim Öffnen der dbf mit geöffnet wurde. Eine weitere Kontrolle im Debugger ergab, das der Satzzeiger wider Erwarten nicht auf EoF() steht. Sondern auf dem korrekten, gesuchten Satz. Warum also ein Return .F. von DbSeek()?

Mir ist das schon enimal in einer anderen dbf aufgefallen. Übereinstimmung zwischen den beiden ist, das die jeweils nur einen einzigen Index haben. Kann das irgendwas damit zu tun haben? Wär ja irre.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DbSeek ist .F., der Satz steht aber korrekt

Beitrag von Martin Altmann »

Kann es nicht vielmehr sein, dass Du im Debugger nicht den DbSeek() in der richtigen Workarea abgefragt hast?
Du abreitest doch sonst immer mit WA->( DbSeek(...) ), oder?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: DbSeek ist .F., der Satz steht aber korrekt

Beitrag von Jan »

Martin,

doch ich habe im Debugger definitiv den korrekten Bereich gehabt. Es klappt ja auch korrekt, nachdem ich den dritten Parameter in die myDbSeek() eingebaut habe. Was ansich ja sinnlos ist, da es nur einen Index gibt, also auch nur der eine aktiv sein kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten