Einzelnen Beitrag anzeigen

Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

XE2, Firebird und jetzt auch noch Unicode..

  Alt 19. Dez 2011, 12:05
Datenbank: Firebird • Version: 2.5 • Zugriff über: dbExpress
Hallo,

nachdem man mir schon am Wochenende bzgl. Datenbankverbindung erfolgreich "aufs Pferd" geholfen hat, habe ich die Hoffnung, dass man mir auch beim nächsten Problem das Licht anzünden kann:

Ich möchte in einer kleinen Anwendung Daten aus einer Firebird Datenbank (Standardzeichensatz ist UTF8) lesen. Soweit kein Problem. Habe u.a. zwei Felder

WHO_NAME Varchar(50)
WHO_ARAB Varchar(50)

Das zweite Feld soll eben arabische Zeichen enthalten. Die Darstellung in der Datenbank ist kein Problem. Im Designer (IBExpert) kann ich korrekte Daten ein- bzw. ausgeben.

Beim Lesen durch die Testapplikation:


Delphi-Quellcode:
  with ibquery1 do
  begin
    open;
    id := FieldByName('WHO_ID').AsInteger;
    edit1.Text := FieldByName('WHO_ARAB').AsWideString;
    edit2.Text := FieldByName('WHO_NAME').AsWideString;
  end;

allerdings wird etwas völlig anderes angezeigt. Gebe ich andererseits in der Testapplikation einen arabischen Text ein (Anzeige am Schirm korrekt)

Delphi-Quellcode:
  with ibquery2 do
  begin
    ParamByName('PA').AsWideString := edit1.Text;
    ParamByName('ID').AsInteger := id;
    Open;
    Close;
  end;
steht in der Datenbank wieder etwas völlig anderes. Alle anderen Felder werden korrekt geschrieben und gelesen. Vermutlich ein Konvertierungsproblem. Das Editfeld ist "bdRightToLeft", "ARABIC_CHARSET", "@Arial Unicode MS".

Was läuft da falsch?
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat