ADSDBE Indexerstellung mit FOR-Expression

Advantage Database Server

Moderator: Moderatoren

Antworten
FrankG
Rookie
Rookie
Beiträge: 10
Registriert: Sa, 22. Jul 2006 8:12
Wohnort: Bonn

ADSDBE Indexerstellung mit FOR-Expression

Beitrag von FrankG »

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ß
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Frank,
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 ) )
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
: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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo Frank,

wenn dies wie Martin beschrieben hat noch nicht funkt. sollte, setzte mal
einen TAG-Namen ein.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

War da nicht etwas von Verwendung in der Indexdefinition von Variablen eines bestimmten Types oder täusche ich mich jetzt?
Gruß,

Andreas
VIP der XUG Osnabrück
FrankG
Rookie
Rookie
Beiträge: 10
Registriert: Sa, 22. Jul 2006 8:12
Wohnort: Bonn

Sehr mühsam

Beitrag von FrankG »

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
Antworten