AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Migration BDE zu ADO Problem mit Zeichensätzen
Thema durchsuchen
Ansicht
Themen-Optionen

Migration BDE zu ADO Problem mit Zeichensätzen

Ein Thema von tbachert · begonnen am 1. Mär 2007 · letzter Beitrag vom 1. Mär 2007
Antwort Antwort
tbachert

Registriert seit: 1. Mär 2007
3 Beiträge
 
#1

Migration BDE zu ADO Problem mit Zeichensätzen

  Alt 1. Mär 2007, 07:41
Datenbank: Diverse • Zugriff über: BDE / ADO
Hallo zusammen


Ich beschäftige mich gerade damit, eine größere Anwendung von der Nutzung der BDE auf ADO umzustellen.

Die Anwendung kann mit DB2, Oracle, MSSQL und einigen anderen Datenbanken umgehen.
Für SQL Server 2005 ist nun die Umstellung auf ADO nötig.

vorhandene Datenbanken / Daten sollen hierbei natürlich weiter genutzt werden.

Innerhalb der Datenbank ist ein Zeichensatz eingestellt, der zu DOS kompatibel ist, da auch noch DOS Clients zum Einsatz kommen.

Nun zum eigentlichen Problem:

Bei der BDE Verbindung wird über den Parameter LANGDRIVER ein Zeichensatz eingestellt. Damit kommen die Datensätze richtig an (oder werden richtig konvertiert). Das Darstellen von Umlauten, etc. ist kein Problem.

Bei der ADO Verbindung habe ich keine Einstellung für den Zeichensatz wie LANGDRIVER o.ä. gefunden.
Deshalb sind nun bei der Verwendung von ADO statt z.B. äöüß nur seltsame Zeichen an diesen Stellen, da wohl die Umlaute usw. in dem Zeichensatz an anderer Stelle liegen.

Meine Frage ist nun, gibt es eine Möglichkeit einer ADO Verbindung ähnlich wie mit dem Parameter LANGDRIVER bei BDE einen Zeichensatz mitzugeben?

Oder wie könnte man das sonst lösen?

Vielen Dank und Gruß

Timo Bachert
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Migration BDE zu ADO Problem mit Zeichensätzen

  Alt 1. Mär 2007, 07:55
1, Nur für den MS SQL-Server ist ADO die zu empfehlende Zugriffsschicht. Bei allen anderen Datenbanken geht man über deren native Schnittstelle. Für Oracle sind z.B. die Kompos von Core labs und Allround Automation einen Blick wert.
Die Datenbank-Unterschide kapselt man am Besten z.B. durch die Verwendung des Bridge-Pattern

2, Dein Zeichensatzproblem schein eher zu sein das die Daten "zerschossen" in die Datenbank gelangen. Wie schauen die Daten aus wenn sie z.B. per Enterprise Manager angeschaut werden. Hier wirst Du vermutlich auf Client-Ebene einen Konvertierung einbauen müssen da ADO sowas "veraltetes" nicht mehr vorsieht und eigentlich mit Unicode arbeitet. Kann man nicht die DOS-Clients (wirklich DOS oder Consolen-Programme) nicht ablösen bevor man hier große Umbauarbeiten und Wochen investieren muß bloß um solche legacy-Anwendungen noch am laufen zu halten? Evtl. ist es auch nur nötig die Daten "richtig" per Batch-Lauf zu konvertieren und für die Altanwendungen andere LANGDRIVER-Einstellungen zu probieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
tbachert

Registriert seit: 1. Mär 2007
3 Beiträge
 
#3

Re: Migration BDE zu ADO Problem mit Zeichensätzen

  Alt 1. Mär 2007, 08:23
Es geht letzten Endes darum, dass die Software bei mehr als 500 Kunden im Einsatz ist.

Von daher kann ich nicht einfach eine Batch Konvertierung in der Datenbank vornehmen.

Die Clients sind echte Dos Clients auf 486er Terminals.

Wenn ich den entsprechenden Datensatz in Oracle SQL Plus abrufe sieht es so aus:
l*schbar wobei der * ein auf dem Kopf stehendes Fragezeichen sein soll.

Es wird mir wohl nichts anderes übrig bleiben, als nach dem Ausführen des SQL Statements vor der Anzeige die Daten zu konvertieren.
Gibt es dafür fertige VCL Funktionen?

Was genau bewirkt eigentlich der LANGDRIVER bei der BDE?

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Migration BDE zu ADO Problem mit Zeichensätzen

  Alt 1. Mär 2007, 08:30
Zitat von tbachert:
Wenn ich den entsprechenden Datensatz in Oracle SQL Plus abrufe sieht es so aus:
l*schbar wobei der * ein auf dem Kopf stehendes Fragezeichen sein soll.
Bei Oracle mußt du mit der Umgebungsvariable NLS_LANG herumspielen um eine passende zu finden. Eine Liste der Möglichen Werte muß du dir selbst "ergooglen" (Selbst verwenden wir nur AMERICAN_AMERICA.UTF8). Diese kann z.B. beim Programmstart mit SetEnvironmentVariable lokal für dein Programm gesetzt werden.
Nachkonvertierung auf Client-Ebene ist nicht möglich da die Daten schon irreversible geändert wurden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
tbachert

Registriert seit: 1. Mär 2007
3 Beiträge
 
#5

Re: Migration BDE zu ADO Problem mit Zeichensätzen

  Alt 1. Mär 2007, 10:52
Danke, damit bin ich näher an der Lösung des Problems dran. NLS_LANG beeinflusst auch die Anzeige der Daten in der Applikation. Jetzt muss ich nur noch den richtigen Wert dafür finden.

Mit Microsoft SQL Server geht es sowieso richtig!

Danke und Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz