Hallo,
gerade stolpere ich über einen Punkt, der mich irritiert: Ich erstelle in dem Programm einen Index auf Upper(field). Wenn ich dann aber später darin suche, dann werden Begriffe, die unter FOXCDX gefunden wrden, nicht mehr gefunden. Ich habe mir den Index dann mal im ARC angesehen - und siehe da, das Upper() ist weg! Das ist natürlich eine Katastrophe, weil manche Sachen eben unterschiedlich geschrieben werden können.
Wie bekomme ich den ADS dazu, meine Upper()-Anweisung zu übernehmen?
Jan
Indexausdruck mit Upper() [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:
Indexausdruck mit Upper() [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.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Indexausdruck mit Upper()
upper() ist unter FOXCDX und DBFCDX automatisch aktiv (also immer bei CDX), braucht dort nicht angegeben werden.
Eventuell gibt es einen Schalter, der das bei der ADS auch so einschaltet (ist effizienter )
Eventuell gibt es einen Schalter, der das bei der ADS auch so einschaltet (ist effizienter )
Gruß
Hubert
Hubert
- 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: Indexausdruck mit Upper()
Hubert,
das Gerücht, das man unter FOXCDX kein Upper() braucht, habe ich auch schon gehört. Funktioniert aber nicht. Zumindest nicht bei mir.
Ich habe das eben mal kontrolliert. In anderen dbf ist der Index korrekt mit Upper() angelegt worden. Den betreffenden Index konnte ich nicht ändern. Ich hab den gelöscht und neu erstellt, direkt im ARC. Da hat es dann mit Upper() auch geklappt. Keine Ahnung warum nicht im Programm. Denn alle Indizee werden exakt gleich erstellt, ich habe mir dafür eine Funktion egschrieben an die ich nur die benötigten Indizee übergebe.
Jan
das Gerücht, das man unter FOXCDX kein Upper() braucht, habe ich auch schon gehört. Funktioniert aber nicht. Zumindest nicht bei mir.
Ich habe das eben mal kontrolliert. In anderen dbf ist der Index korrekt mit Upper() angelegt worden. Den betreffenden Index konnte ich nicht ändern. Ich hab den gelöscht und neu erstellt, direkt im ARC. Da hat es dann mit Upper() auch geklappt. Keine Ahnung warum nicht im Programm. Denn alle Indizee werden exakt gleich erstellt, ich habe mir dafür eine Funktion egschrieben an die ich nur die benötigten Indizee übergebe.
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.
- 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: Indexausdruck mit Upper()
OK, Fehler gefunden. Wenn man den zu erstellenden Index falsch übergibt, dann kann der ADS den natürlich auch nicht korrekt erstellen. Da stell ich mir doch die Frage, wie das all die Jahre vorher gut gehen konnte. Anscheinend wurde der Index neu neu erstellt. Oder der andere Entwickler hier bei meinem Kunden hat da irgendwann drin rumgetippt.
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.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Indexausdruck mit Upper()
Der CDX Index ist unabhängig von der Groß-/Kleinschreibung (ob das auch für Umlaute gilt hab ich nicht probiert)Jan hat geschrieben: das Gerücht, das man unter FOXCDX kein Upper() braucht, habe ich auch schon gehört.
Funktioniert aber nicht. Zumindest nicht bei mir.
Hier ein Beispielprogramm und die Ausgabe:
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#include "Inkey.ch"
#include "DBFDBE.CH"
#include "NTXDBE.CH"
#include "FOXDBE.CH"
#include "CDXDBE.CH"
PROCEDURE dbeSys()
SET COLLATION TO GERMAN
SET DATE TO GERMAN
SET EPOCH TO year(date())-80
SET CHARSET TO OEM
IF ! DbeLoad( "DBFDBE", .t.)
Alert( "DBFDBE wurde nicht geladen" , {"OK"} )
ENDIF
IF ! DbeLoad( "NTXDBE", .t.)
Alert( "NTXDBE wurde nicht geladen" , {"OK"} )
ENDIF
IF ! DbeBuild( "DBFNTX","DBFDBE","NTXDBE" )
Alert( "DBFNTX wurde nicht erstellt" , {"OK"} )
ENDIF
IF ! DbeLoad( "CDXDBE", .t.)
Alert( "CDXDBE wurde nicht geladen" , {"OK"} )
ENDIF
IF ! DbeBuild( "DBFCDX","DBFDBE","CDXDBE" )
Alert( "DBFCDX wurde nicht erstellt" , {"OK"} )
ENDIF
DbeInfo( COMPONENT_ORDER, DBE_LOCKMODE , LOCKING_EXTENDED )
RETURN
procedure main()
delete file TEST.DBF
delete file TEST.NTX
delete file TEST.CDX
set alternate to test.txt
set alternate on
dbcreate( "test.dbf", {{ "Name", "c", 100,0 }} )
use test exclusive VIA DBFNTX
dbappend()
replace name with "Test ohne Umlaute"
dbappend()
replace name with "Hubert in Rec 2"
dbappend()
replace name with "ENDE in Rec 3"
index on upper(name) to test
? "Hubert",dbseek("Hubert"),recno()
? "HUBERT",dbseek("HUBERT"),recno()
close
use test exclusive VIA DBFCDX
index on name to test
? "Hubert",dbseek("Hubert"),recno()
? "HUBERT",dbseek("HUBERT"),recno()
close
inkey( 10 )
return
Code: Alles auswählen
Hubert N 4
HUBERT J 2
Hubert J 2
HUBERT J 2
- Dateianhänge
-
- NTX_CDX_UPPER.zip
- (1.23 KiB) 188-mal heruntergeladen
Gruß
Hubert
Hubert