ADS ANSI-ASCII Konvertierung

Advantage Database Server

Moderator: Moderatoren

Antworten
erich63
Rookie
Rookie
Beiträge: 1
Registriert: Mi, 02. Okt 2013 2:28

ADS ANSI-ASCII Konvertierung

Beitrag von erich63 »

Wir setzen seit Jahren ADS (8.0) unter Novell (6.5) ein. Programme laufen unter Xbase 1.9 und auch noch alte Clipper-Routinen.
Aktuell stellen wir auf SQL (PostgreSql 9.x) um.
Das Problem:
Es soll innerhalb einer XBase-Anwendung mit DBF-Zugriffen automatisch die entsprechende SQL-Tabelle gefüllt werden. Hierbei müssen die DBF-Daten ins ANSI konvertiert werden. Mit dem DBFCDX funktioniert das auch einwandfrei.
Die ADSDBE konvertiert nicht automatisch.
Was muss in der ADS-Konfiguration eingestellt bzw. verändert werden, damit die Konvertierung automatisch funktioniert ?? Die Hilfe von ADS ist nicht sonderlich hilfreich.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: ADS ANSI-ASCII Konvertierung

Beitrag von UliTs »

Hallo Erich,

ich verstehe leider nicht, was Du möchtest :shock: :? .

Ich vermute, Ihr benutzt den ADS mit DBF-Tabellen mit OEM-Zeichensatz.
Aus irgendeinem Grund wollt Ihr die uralte ADS-Version durch Postgres-SQL ersetzen. Dabei soll in Zukunft ANSI als Zeichensatz verwendet werden (ich würde ja stattdessen auf ADS 11.1 upgraden und Euch bleiben viele zukünftige Probleme erspart :wink: ).

Ich vermute, dass leichteste ist, zunächst die DBF-Tabellen auf ANSI-Zeichensatz umzustellen und anschließend erst nach Postgres-SQL konvertieren.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ADS ANSI-ASCII Konvertierung

Beitrag von brandelh »

Alles was nicht automatisch konvertiert wird, kann man mit ConvToAnsiCP() umsetzen. Siehe hierzu auch SET CHARSET... in der Hilfe.
Wenn deine EXE selbst unter OEM läuft, werden die Daten normalerweise mit FOXDBE, DBFDBE in OEM gespeichert.
Wenn deine EXE aber unter ANSI läuft, werden NEUE Dateien von FOXDBE in ANSI angelegt, DBFDBE bleibt immer in OEM (von dem ANSI Flag lassen wir mal die Finger).
Wie sich die ADSDBE verhält weis ich nicht, aber je nach EXE Zeichensatz kann es sein, dass man die Werte mit ConvToAnsiCP() umsetzen muss bevor man diese an z.B. ODBC Treiber übergibt.
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: ADS ANSI-ASCII Konvertierung

Beitrag von UliTs »

Hallo Hubi,

es geht um den ADS ;-) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ADS ANSI-ASCII Konvertierung

Beitrag von brandelh »

Hallo Uli,

ich lese noch was von PostGreSQL und auch FOXCDX und Clipper (DBFNTX ?), aber egal mit welcher DBE / Schnittstelle man arbeitet,
was ist falsch an dem Hinweis dass man manuell konvertieren kann. Zur ADSDBE kann ich nicht sagen weil ich die nicht kenne.

Immerhin hat noch niemand die "richtigen Einstellungen für den ADS" genannt, und sooft konvertiert man ja auch nicht.
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: ADS ANSI-ASCII Konvertierung

Beitrag von UliTs »

Hallo Hubert,

Du hast Recht. Wenn man in einem Data Dictionary einfach den Zeichensatz von OEM auf ANSI ändert, werden nicht automatisch die Daten konvertiert.
Und auf die Schnelle habe ich auch keine Konvertierungsfunktion gefunden...
Wenn man es direkt auf dem ADS machen möchte, sehe ich zur Zeit nur die Lösung mit einer selbst geschriebenen Funktion im Data Dictionary.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten