Announcement

Collapse
No announcement yet.

BDE/Paradox/MSSQL und Unicode?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BDE/Paradox/MSSQL und Unicode?

    Hallo,

    Umg.: Delphi 6 Ent UP2, BDE, Paradox, Oracle, MSSQL

    Eine Anwendung soll auf Unicode umgestellt werden, damit Lokalisierungen auch mit anderen Zeichensätzen (z.B. polnisch, russisch, etc.) funktionieren.

    Was habe ich alles dabei zu beachten?

    Muss ich in der Datenbank alle varchar/char Typen durch entsprechende Unicode-Typen ersetzen (z.B. bei MSSQL nchar und nvarchar-Typen). Hat man bei Paradox auch solche Möglichkeiten?

    Ich habe hier schon gelesen, dass Delphi nicht unicode-fähig ist. Wie löse ich dann dieses Problem innerhalb der Anwendung?

    Gruß<br>
    Stephan

  • #2
    Hallo,

    die Suche im FORUM nach der Zeichenkette <b>Bernhard UNICODE</b> liefert viele Informationen zu diesem Thema

    Comment


    • #3
      Hallo Stephan,

      hier nochmal eine kurze Zusammenfassung:

      1, Für Unterstützung von Unicode in einer Delphi-Anwendung benötigtst Du zusätzliche Komponenten. Die Die Borland-VCL-Komponenten basieren alle auf Ansi(8-Bit-Strings)

      Falls Mehrsprachigkeit/Unicode nur unter NT/2000/XP gewünscht ist (und nichts ausgegeben werden darf):

      http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm (kostenlos)

      Falls Unicode auch unter 9x/Me nötig ist:

      http://www.eldos.org/elpack/ (Kostet ein paar $, ist aber 100%iger Unicode Ersatz für die Delphi-Controls + Zusätzliche Features)

      2, Bei MS-SQL reicht es aus alle (var)char-Felder auf n(var)char umzustellen und über ADO darauf zuzugreifen.<br>
      Bei allen anderen Datenbanken mußt Du auf UTF-8-Codierte Daten zurückgreifen. Hierbei muß bei Zugriff über BDE die Konfiguration so vorgenommen werden, das keine Codepage-Umwandlungen auftreten. Oracle kann im UTF-8-Modus betrieben werden.

      Zusammenfassung: Object Pascal/Delphi-Language ist sehr wohl Unicode-Fähig (16-Bit-Unicode), jedoch nicht die von Borland gelieferten VCL/CLX-Komponenten. Mit obigen Komponentensammlungen sollte das Problem aber zu lösen sein

      Comment


      • #4
        Hallo Bernhard,

        danke für die Infos!

        Könntest Du mir folgendes genauer erklären:

        <i>Bei allen anderen Datenbanken mußt Du auf UTF-8-Codierte Daten zurückgreifen. Hierbei muß bei Zugriff über BDE die Konfiguration so vorgenommen werden, das keine Codepage-Umwandlungen auftreten. Oracle kann im UTF-8-Modus betrieben werden</i>

        Stepha

        Comment


        • #5
          Hallo Stephan,

          in der Ausgabe 5/03 des Entwicklers erscheint ein Artikel von mir mit dem Inhalt "Delphi und Unicode" (Erstverkaufstag 7.8.03) welcher Dein Problem in ausführlicher Form beschreiben und (hoffentlich zur Zufriedenheit) auch lösen wird.

          BDE-Konfiguration: Du mußt dafür sorgen das dein BDE-Alias im Eintrag LANGDRIVER einen "transparenten" Eintrag hat, welcher keine Umwandlung der UTF-8-Codierten Daten vornimmt (z.B. 'ascii' ANSI).

          Oracle: Hier mußt Du eine Instanz der Oracle-Datenbank so Installieren, das sie in der Codepage UTF-8 läuft. Ebenfalls muß für den Net8-Client die Umgebungsvariable NLS_LANG = AMERICAN_AMERICA.UTF8 gesetzt sein, damit der Treiber keine Umwandlung vornimmt

          Comment

          Working...
          X