AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Mehrsprachig sichern + anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrsprachig sichern + anzeigen

Ein Thema von user0815 · begonnen am 29. Nov 2012 · letzter Beitrag vom 29. Nov 2012
Antwort Antwort
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#1

Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 07:34
Datenbank: Firebird • Version: 2.5.1 • Zugriff über: UniDAC
Hallo,

was muss ich machen um folgendes zu erreichen: Text in ein TEdit Feld eingeben, diesen über einen TUniQuery in einer Firebird Tabelle speichern.
Beliebigen Text aus der DB auslesen und als Caption anzeigen (TLabel, TButton, ...)
Muss ich etwas bestimmtes beim TUniQuery einstellen, wie müsste das Feld in der DB definiert sein (Varchar, Characterset, Collation) ?

Zur Zeit wird in der DB alles als '?' angezeigt !

Als Texte: Deutsch, Englisch, Russisch, Chinesisch, Französisch, Dänisch, usw...

Grüße
user0815
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 07:35
Stichwort auf DB-Seite ist UTF-8 und auf Delphi-Seite D2009 oder neuer.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 08:04
Nutze Database Workbench v4.3.2 Pro, habe dort eine Test Tabelle angelegt (DDL):

Code:
CREATE TABLE SPRACHE
(
  TAG_ID             INTEGER        NOT NULL,
  DE                 VARCHAR(   255) CHARACTER SET UTF8  COLLATE UTF8,
  EN                 VARCHAR(   255) CHARACTER SET UTF8  COLLATE UTF8,
  CN                 VARCHAR(   255) CHARACTER SET UTF8  COLLATE UNICODE_CI,
  CC                 VARCHAR(   255) CHARACTER SET UTF8  COLLATE UNICODE_CI_AI,
  CT                 VARCHAR(   255) CHARACTER SET UTF8  COLLATE UNICODE,
 CONSTRAINT PK_SPRACHE PRIMARY KEY (TAG_ID)
);
Füge ich jetzt diesen Text "Администрирование" in alle Felder manuell ein, so werden nach dem Verlassen des Feldes nur Fragezeichen angezeigt.

Delphi-Quellcode:
  with Datenmodul.UniQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT DE, EN, CN, CC, CT');
    SQL.Add('FROM SPRACHE');
    SQL.Add('WHERE TAG_ID = :ID;');
    ParamCheck := true;
    ParamByName('ID').AsInteger := 1;
    Open;
    Edit1.Text := FieldByName('CT').AsString;
    Label1.Caption := FieldByName('CT').AsString;
    Memo1.Lines.Append(FieldByName('CT').AsString);
    Memo1.Lines.Append(FieldByName('DE').AsString);
    Memo1.Lines.Append(FieldByName('EN').AsString);
    Memo1.Lines.Append(FieldByName('CN').AsString);
    Memo1.Lines.Append(FieldByName('CC').AsString);
    Close;
  end;
es werden nur Fragezeichen ausgegeben... darum ja meine Frage...
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#4

AW: Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 08:25
Ich verwende UniDAC nicht, aber bei IBDAC muss man natürlich angeben, wenn man mit Unicode arbeiten möchte. Setzt natürlich auch Delphi 2009 oder höher voraus.
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 08:53
habe ja XE2, ich finde im Objektinspektor keine Einstellung für Unicode... die Query Komponente selber heisst ja auch: TUniQuery

wenn ich versuche ein Umlaut (ä) zu sichern (egal in welches Feld):

Delphi-Quellcode:
  with Datenmodul.UniQuerySave do
  begin
    Close;
    SQL.clear;
    SQL.Add('UPDATE SPRACHE');
    SQL.Add('SET');
    SQL.Add('CT = :EINGABE');
    SQL.Add('WHERE TAG_ID = :TAG_ID');

    ParamCheck := true;
    ParamByName('TAG_ID').AsInteger := 3;
    ParamByName('EINGABE').AsAnsiString := 'ä';
    Execute;
    Close;
  end;
dann erhalte ich folgende Fehlermeldung:

"Im Projekt xxx.exe ist eine Exception der Klasse EIBCError mit der Meldung '
Dynamic SQL Error
SQL error code = -303
Malformed string' aufgetreten."
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#6

AW: Mehrsprachig sichern + anzeigen

  Alt 29. Nov 2012, 09:04
Hab mir jetzt mal die CHM-Doku von UniDAC runtergeladen und im Prinzip ist es gleich zu IBDAC bzgl. Unicode. Hast du TUniConnection.CharSet und TUniConnection.UseUnicode korrekt gesetzt?
  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 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz