Hallo liebes Forum,
ich nutze für meinen Kunden neuerdings die ADSDBE (mit Dictionary) und sitze zur Zeit an der Portierung von der FOXCDX.
Bei der Erstellung eines temp. Index für eine Auswertung habe ich in der Vergangenheit Einschränkungen vorgenommen, die abhängig von Benutzereingaben waren:
index on atnummer to attemp ;
for atdatum >= ddatvon .and. atdatum <= ddatbis
Ergebnis:
Error 3211: Unknown identifier found in index Conditional expression...
Gibt es eine Möglichkeit die For-Expression irgendwie anders aufzubauen?
Grüße
Frank Groß
ADSDBE Indexerstellung mit FOR-Expression
Moderator: Moderatoren
- Martin Altmann
- Foren-Administrator
- Beiträge: 16551
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Frank,
mein Vorschlag: Klammere mal die FOR-Ausdrücke und schreibe es in eine Zeile:
Eigentlich müsste es funktionieren - vorausgesetzt Dein Feld in der Datenbank heißt auch atdatum und die Variablen ddatvon und ddatbis sind befüllt und vom selben Typ, wie Dein Feld atdatum...
Viele Grüße,
Martin
mein Vorschlag: Klammere mal die FOR-Ausdrücke und schreibe es in eine Zeile:
Code: Alles auswählen
index on atnummer to attemp for ( ( atdatum >= ddatvon ) .and. ( atdatum <= ddatbis ) )
Viele Grüße,
Martin
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.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Sehr mühsam
Herzlichen Dank für die Hilfestellungen.
Typen der Variablen stimmen, aber es hängt vielleicht damit zusammen.
Ich habe eine "Lösung" gefunden, die mich nun nicht glücklich macht:
cindexbes="atnummer"
c_neu_tag_name:="DATSPEZ3"
c_neu_indexname:="DAT10IND"
cindexausfo:="(atdatum >= " +chr(34)+dtoc(datvon)+chr(34)+").and. (atdatum <= " +chr(34)+dtoc(datbis)+chr(34)+")"
// So war es früher und es kommt der Absturz
index on &(cindexbes) TAG &(c_neu_tag_name) to &(c_neu_indexname) FOR (atdatum >= (datvon) .and. atdatum <= (datbis))
//So läuft es nun, aber die Def. von cindexausfo ist doch ziemlich aufwendig.
index on &(cindexbes) TAG &(c_neu_tag_name) to &(c_neu_indexname) FOR &(cindexausfo)
Des Weiteren wird ein AUTOOPENINDEX erstellt. Das wollte ich eigentlich auch nicht.
Wie kann ich es besser machen? Neue Session erstellen (ADSCDX) oder für temp. Index gleich wieder mit FOXCDX arbeiten? Oder ist letzteres nicht nur nicht sauber, sondern bringt Probleme mit sich?
Grüße
Frank
Typen der Variablen stimmen, aber es hängt vielleicht damit zusammen.
Ich habe eine "Lösung" gefunden, die mich nun nicht glücklich macht:
cindexbes="atnummer"
c_neu_tag_name:="DATSPEZ3"
c_neu_indexname:="DAT10IND"
cindexausfo:="(atdatum >= " +chr(34)+dtoc(datvon)+chr(34)+").and. (atdatum <= " +chr(34)+dtoc(datbis)+chr(34)+")"
// So war es früher und es kommt der Absturz
index on &(cindexbes) TAG &(c_neu_tag_name) to &(c_neu_indexname) FOR (atdatum >= (datvon) .and. atdatum <= (datbis))
//So läuft es nun, aber die Def. von cindexausfo ist doch ziemlich aufwendig.
index on &(cindexbes) TAG &(c_neu_tag_name) to &(c_neu_indexname) FOR &(cindexausfo)
Des Weiteren wird ein AUTOOPENINDEX erstellt. Das wollte ich eigentlich auch nicht.
Wie kann ich es besser machen? Neue Session erstellen (ADSCDX) oder für temp. Index gleich wieder mit FOXCDX arbeiten? Oder ist letzteres nicht nur nicht sauber, sondern bringt Probleme mit sich?
Grüße
Frank