ADS Fragen
Moderator: Moderatoren
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
ADS Fragen
Hallo,
muss ein Projet auf ADS umstellen und habe dazu ein paar Fragen. Vielleicht kann mir hier jemand helfen. Ich verwende die letzte 1.09er und FOXCDX und würde das ADS data dictonary verwenden, um auch den AIS verwenden zu können.
1. kann ich einen Index wie z.B. str(n,5)+dtos(datum) erstellen ? Anscheinend funktioniert es, aber welche Funktionen stehen mir zur Verfügung ? Alle XBase++ Möglichkeiten oder Serverseitige vom ADS ?
2. ich habe meine Applikationen auf ANSI eingestellt, gibt es Probleme mit den Umlauten ? Was muss ich berücksichtigen ?
3. habe gelesen, dass leere Datenbankfelder mit NULL befüllt werden. Wenn ich also einen Index wie im obigen Beispiel erstellen würde, resultiert das in einem Runtime Fehler, da NULL im Index wäre.
das wärs mal für den Anfang, der Rest kommt sicher noch während der Umstellung
Grüsse
Rudolf
muss ein Projet auf ADS umstellen und habe dazu ein paar Fragen. Vielleicht kann mir hier jemand helfen. Ich verwende die letzte 1.09er und FOXCDX und würde das ADS data dictonary verwenden, um auch den AIS verwenden zu können.
1. kann ich einen Index wie z.B. str(n,5)+dtos(datum) erstellen ? Anscheinend funktioniert es, aber welche Funktionen stehen mir zur Verfügung ? Alle XBase++ Möglichkeiten oder Serverseitige vom ADS ?
2. ich habe meine Applikationen auf ANSI eingestellt, gibt es Probleme mit den Umlauten ? Was muss ich berücksichtigen ?
3. habe gelesen, dass leere Datenbankfelder mit NULL befüllt werden. Wenn ich also einen Index wie im obigen Beispiel erstellen würde, resultiert das in einem Runtime Fehler, da NULL im Index wäre.
das wärs mal für den Anfang, der Rest kommt sicher noch während der Umstellung
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
-
- Rekursionen-Architekt
- Beiträge: 164
- Registriert: Mo, 09. Jan 2006 17:06
- Wohnort: Paderborn
- Hat sich bedankt: 2 Mal
- Kontaktdaten:
Hallo Rudolf,
SET NULLVALUE OFF
Schwieriger ist das allerdings bei zusammengesetzten Indexausdrücken, weil hier der gesamte Indexausdruck NULL wird, sobald ein Teil des zusammengesetzten Ausdruck NULL ist.
Beispiel: Indexausdruck NAME + VORNAME + DTOS(GEBURT)
Alle Datensätze, bei denen kein Geburtsdatum eingetragen sind (GEBURT = NULL) stehen in diesem Index ganz vorne in der Sortierreihenfolge!
Ich habe zu folgendem Workaround gegriffen: NAME + VORNAME + IF(GEBURT=NULL," ",DTOS(GEBURT))
, aber das ist natürlich ein Krampf. Wenn Du hierfür eine bessere Lösung findest, lass es mich bitte wissen!
BTW, ich hatte im Zusammenhang mit der ADT-Umstellung einige Male Kontakt mit dem ALASKA-Support und in deren Antworten stand zwischen den Zeilen immer recht deutlich, dass die diese Umstellung nicht empfehlen!
Schöne Grüße
Hans
Das kannst Du in der ADS-Hilfe unter 'Expression Engine' nachlesen. Dort sind die Funktionen aufgeführt, die Serverseitig unterstützt werden. Str() und DTOS() gehören dazu.1. kann ich einen Index wie z.B. str(n,5)+dtos(datum) erstellen ? Anscheinend funktioniert es, aber welche Funktionen stehen mir zur Verfügung ? Alle XBase++ Möglichkeiten oder Serverseitige vom ADS ?
Das sollte kein Problem sein.2. ich habe meine Applikationen auf ANSI eingestellt, gibt es Probleme mit den Umlauten ? Was muss ich berücksichtigen ?
Es gibt dafür einen Set-Parameter unter Xbase++, der dafür sorgt, dass Nullvalues im Programm als leere bzw. NIL-Werte interpretiert werden:3. habe gelesen, dass leere Datenbankfelder mit NULL befüllt werden. Wenn ich also einen Index wie im obigen Beispiel erstellen würde, resultiert das in einem Runtime Fehler, da NULL im Index wäre.
SET NULLVALUE OFF
Schwieriger ist das allerdings bei zusammengesetzten Indexausdrücken, weil hier der gesamte Indexausdruck NULL wird, sobald ein Teil des zusammengesetzten Ausdruck NULL ist.
Beispiel: Indexausdruck NAME + VORNAME + DTOS(GEBURT)
Alle Datensätze, bei denen kein Geburtsdatum eingetragen sind (GEBURT = NULL) stehen in diesem Index ganz vorne in der Sortierreihenfolge!
Ich habe zu folgendem Workaround gegriffen: NAME + VORNAME + IF(GEBURT=NULL," ",DTOS(GEBURT))
, aber das ist natürlich ein Krampf. Wenn Du hierfür eine bessere Lösung findest, lass es mich bitte wissen!
BTW, ich hatte im Zusammenhang mit der ADT-Umstellung einige Male Kontakt mit dem ALASKA-Support und in deren Antworten stand zwischen den Zeilen immer recht deutlich, dass die diese Umstellung nicht empfehlen!
Schöne Grüße
Hans
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo Hans,
vielen Dank für die Infos. Für die NULL Values habe ich im Forum einen Tip gefunden. SET NULLVALUE OFF setzen, und in den Indexausdrücken
IIF(EMPTY(Field),SPACE(X),Convert(Field))...
verwenden. Die Funktion Convert gibt es anscheinend im ADS zum konvertieren von nicht Char Variablen in Strings wie z.B. var2char() im XBase++.
Wo liegt genau das Problem mit dem ADT Format ?
Brauche ich das nicht für den AIS ?
Kann ich beim DBF/CDX Format die Indexausdrücke unverändert lassen ?
Grüsse
Rudolf
vielen Dank für die Infos. Für die NULL Values habe ich im Forum einen Tip gefunden. SET NULLVALUE OFF setzen, und in den Indexausdrücken
IIF(EMPTY(Field),SPACE(X),Convert(Field))...
verwenden. Die Funktion Convert gibt es anscheinend im ADS zum konvertieren von nicht Char Variablen in Strings wie z.B. var2char() im XBase++.
Wo liegt genau das Problem mit dem ADT Format ?
Brauche ich das nicht für den AIS ?
Kann ich beim DBF/CDX Format die Indexausdrücke unverändert lassen ?
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
-
- Rekursionen-Architekt
- Beiträge: 164
- Registriert: Mo, 09. Jan 2006 17:06
- Wohnort: Paderborn
- Hat sich bedankt: 2 Mal
- Kontaktdaten:
Hallo Rudolf,
Aus dem Beispiel aus meiner vorherigen Mail:
wird dann
So richtig gut lesbar und komfortabel finde ich das nicht.
Es gibt natürlich auch gute Gründe für die Umstellung auf ADT, unser Hauptgrund war die automatische Wiedernutzung von gelöschten Datensätzen, damit wir endlich unsere Reorganisationsroutine rauswerfen können. In Zukunft wird für uns auch die Verschlüsselung der Tabellen ein Thema sein.
Ich habe die ADT-Umstellung gemacht und die angesprochenen Klippen umschifft und möchte Dich nicht davon abhalten, im Produktivbetrieb haben wir die 1.9er ADT-Version allerdings noch nicht.
Freundliche Grüße
Hans
Das funktioniert m.E. so nicht. Convert ist keine gültige Funktion in ADS-Indexausdrücken, wird aber auch nicht benötigt.IIF(EMPTY(Field),SPACE(X),Convert(Field))...
Aus dem Beispiel aus meiner vorherigen Mail:
Code: Alles auswählen
UPPER (NAME+VORNAME) + DTOS(GEBURT)
Code: Alles auswählen
UPPER (IF(EMPTY(NAME),SPACE(35),NAME)+IF(EMPTY(VORNAME),SPACE(35), VORNAME))+IF(EMPTY(GEBURT),SPACE( 8 ),DTOS(GEBURT))
Meines Wissens nach nicht.Brauche ich das nicht für den AIS ?
Ja.Kann ich beim DBF/CDX Format die Indexausdrücke unverändert lassen ?
Es gibt natürlich auch gute Gründe für die Umstellung auf ADT, unser Hauptgrund war die automatische Wiedernutzung von gelöschten Datensätzen, damit wir endlich unsere Reorganisationsroutine rauswerfen können. In Zukunft wird für uns auch die Verschlüsselung der Tabellen ein Thema sein.
Ich habe die ADT-Umstellung gemacht und die angesprochenen Klippen umschifft und möchte Dich nicht davon abhalten, im Produktivbetrieb haben wir die 1.9er ADT-Version allerdings noch nicht.
Freundliche Grüße
Hans
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo Hans,
vielen Dank für die ausführlichen Infos, werde dann wohl gleich ins kalte Wasser springen und auf die ADT's umstellen. Ist die Doku über die verwenbaren Funktionen für die Index-Ausdrücke beim kostenlosen Local Server dabei ?
Grüsse
Rudolf
vielen Dank für die ausführlichen Infos, werde dann wohl gleich ins kalte Wasser springen und auf die ADT's umstellen. Ist die Doku über die verwenbaren Funktionen für die Index-Ausdrücke beim kostenlosen Local Server dabei ?
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
vielen Dank, werde mich mal in Ruhe durchlesen
Grüsse
Rudolf
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net