Hi,
ich habe einen Browser gebaut, in dem man Suchen kann. Es erscheint also am unteren Rand ein Eingabefeld die Möglichkeit im jeweiligen Index zu suchen. So weit so gut. Das klappt auch, solange man sich an die Regeln hält. Bei mir bedeutet das, das ein Index grundsätzlich immer als String aufgebaut wird, egal ob numerisch oder Datum. Jetzt gibt es aber Ausnahmen, in denen ich leider Indexschlüssel bekomme, die auf numerische Felder sind, aber nicht in String umgewandelt wurden. Da klappt mein "schönes" Pauschalsystem nicht. Also dachte ich mir, dass ich vorher eine Abfrage einbaue, ob die Suche überhaupt zu dem Indexschlüssel paßt. Grob dachte ich mir, ich schaue nach, welche Art Feld ist es und wie ist der Indexschlüssel dazu. Dann wird halt im numerischen Index ohne Stringumwandlung gearbeitet. Aber irgendwie will mir nicht der zündende Gedanke kommen, wie ich das umsetzen kann. Es ist nämlich möglich, dass der aktive Index derzeit ein anderer ist, als der in dem gesucht werden soll.
Im wesentlichen interessiert mich aber an besagter Stelle, ob der "Suchstring" mit dem Indexschlüssel übereinstimmt. Also, wenn meine Eingabe einen String erzeugt, ich aber einen numerischen Wert benötigen würde, dass es dann vorher numerisch gemacht wird, bevor gesucht wird.
Art der Indizierung herausfinden [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Art der Indizierung herausfinden [ERLEDIGT]
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!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9357
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Art der Indizierung herausfinden
IndexKey() liefert den Indexausdruck für den aktuell kontrollierenden Index.
Type(IndexKey()) liefert den Typ, also C, N, D oder L.
Im Prinzip kann über IndexKey() auch ermittelt werden, wie lang z. B. der String oder die numerische Eingabe sein darf, wenn nur ein Feld (!) indexiert ist. FieldPos(IndexKey()) würde dann einen Verweis auf dieses Feld liefern, mit FieldInfo() kämst Du dann an Länge und Nachkommastellen. Auf all das kann Dein Suchfeld reagieren. Schwierig wird's bei konktatinierten Indexen (NAME+VORNAME o.ä.), bei eingebetteten Funktionen (UPPER(NAME)) und bei UDFs. Die Rückgabe von Type() ist dann zwar immer noch verlässlich, aber ob nun nur Großbuchstaben erlaubt sind oder es um einen numerischen Wert mit Nachkommastellen geht, diese Untersuchung erfordert dann schon etwas mehr.
Type(IndexKey()) liefert den Typ, also C, N, D oder L.
Im Prinzip kann über IndexKey() auch ermittelt werden, wie lang z. B. der String oder die numerische Eingabe sein darf, wenn nur ein Feld (!) indexiert ist. FieldPos(IndexKey()) würde dann einen Verweis auf dieses Feld liefern, mit FieldInfo() kämst Du dann an Länge und Nachkommastellen. Auf all das kann Dein Suchfeld reagieren. Schwierig wird's bei konktatinierten Indexen (NAME+VORNAME o.ä.), bei eingebetteten Funktionen (UPPER(NAME)) und bei UDFs. Die Rückgabe von Type() ist dann zwar immer noch verlässlich, aber ob nun nur Großbuchstaben erlaubt sind oder es um einen numerischen Wert mit Nachkommastellen geht, diese Untersuchung erfordert dann schon etwas mehr.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Art der Indizierung herausfinden
Hi Tom,
Danke erstmal. Daran hatte ich mal wieder nicht gedacht. Aber ich denke mal das sollte für meine Zwecke genügen. Wenn ich z.B. ein numerisches Feld habe und ich im Indexkey ein Str finde, dann wäre ich auch schon mal weiter. Der Rest wird sich von Fall zu Fall ergeben, in dem ich es dann nach und nach prüfe, wenn es eintritt.
Danke erstmal. Daran hatte ich mal wieder nicht gedacht. Aber ich denke mal das sollte für meine Zwecke genügen. Wenn ich z.B. ein numerisches Feld habe und ich im Indexkey ein Str finde, dann wäre ich auch schon mal weiter. Der Rest wird sich von Fall zu Fall ergeben, in dem ich es dann nach und nach prüfe, wenn es eintritt.
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!!