Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Chinesische Schriftzeichen in SQL Datenbank

476 views
Skip to first unread message

Michael Engel

unread,
May 4, 2010, 10:05:02 AM5/4/10
to
Hallo liebe NG,

Ich habe bereits eine bestehende Kundendatenbank. In dieser sind diverse
Artikel eingetragen.
Ich m�chte das Sortiment jetzt um Asiatische Waren erweitern. Dabei kann es
gelegentlich zu asiatischen, meist chinesischen, Schriftzeichen kommen.
Diese w�rde ich gerne beibehalten.
Ich habe auf meinem loken Rechner sowie auf dem Datenbankserver bereits das
Sprachpaket nachinstalliert.
Ich kann jetzt alle Zeiche sauber lesen :-)

Jetzt das Problem.
Wenn ich in meine SQL-DB eintr�ge mache wird beim speichern meine Eingabe
durch "??" ersetzt.
Ich denke das Problem liegt an der Installation des SQL-Servers bzw. der
Datenbank.
Sie ist momentan auf
Latin1_General_CI_AS
eingestellt?

Gibt es eine M�glichkeit eine bereits vorhandene DB so zu �ndern, dass ich
die Schriftzeichen abspeichern kann?

Vielen Dank!
mit freundlichem Gru�

Michael


Elmar Boye

unread,
May 4, 2010, 12:05:16 PM5/4/10
to
Hallo Michael,

"Michael Engel" <derh...@arcor.de> schrieb ...


> Ich habe bereits eine bestehende Kundendatenbank. In dieser sind diverse Artikel eingetragen.

> Ich m�chte das Sortiment jetzt um Asiatische Waren erweitern. Dabei kann es gelegentlich zu asiatischen, meist chinesischen,
> Schriftzeichen kommen. Diese w�rde ich gerne beibehalten.


> Ich habe auf meinem loken Rechner sowie auf dem Datenbankserver bereits das Sprachpaket nachinstalliert.
> Ich kann jetzt alle Zeiche sauber lesen :-)
>

Na, das ist doch schon mal was!

> Jetzt das Problem.
> Wenn ich in meine SQL-DB eintr�ge mache wird beim speichern meine Eingabe durch "??" ersetzt.


> Ich denke das Problem liegt an der Installation des SQL-Servers bzw. der Datenbank.
> Sie ist momentan auf
> Latin1_General_CI_AS
> eingestellt?

> Gibt es eine M�glichkeit eine bereits vorhandene DB so zu �ndern, dass ich die Schriftzeichen abspeichern kann?

Die Spalten m�ssen als NVARCHAR(n) definiert werden, was Du via ALTER TABLE
oder �bers Management Studio �ndern kannst.
Wenn Du Zeichenketten �bergibst, so mu� diese mit N' eingeleitet werden,
INSERT INTO Tabelle(UnicodeSpalte) VALUES(N'Dieses w�re jetzt chinesisch');

Verwendest Parameter (ADO/.NET) so mu�t ebenfalls NVarChar als Typ angeben.
Siehe http://msdn.microsoft.com/de-de/library/ms191200.aspx

Gru� Elmar

Michael Engel

unread,
May 6, 2010, 3:55:38 AM5/6/10
to
Vielen Dank f�r deine Hilfe.

Ich habe die Spalte �ber das Management Studio auf NVARCHAR(n) ge�ndert.
Leider keine besserung. Ich habe es mit einem ganz simplen INSERT Statement
versucht:

INSERT INTO Menue_Kat(Name,Buttontext) VALUES('China',N'??');

// Falls falsch angezeigt: INSERT INTO Menue_Kat(Name,Buttontext)
VALUES('China',N'ChinaZeichen');

M�ssen alle Spalten der Tabelle NVARCHAR sein?

> INSERT INTO Tabelle(UnicodeSpalte) VALUES(N'Dieses w�re jetzt
> chinesisch');

Wie gehe ich sicher, dass es sich um eine UnicodeSpalte handelt? Oder kann
ich das Einstellen/Einsehen?

Vielen Dank

Gru� Michael

"Elmar Boye" <Elm...@gmx.net> schrieb im Newsbeitrag
news:%23WMcaY6...@TK2MSFTNGP04.phx.gbl...
>
> Die Spalten m�ssen als NVARCHAR(n) definiert werden, was Du via ALTER
> TABLE
> oder �bers Management Studio �ndern kannst.
> Wenn Du Zeichenketten �bergibst, so mu� diese mit N' eingeleitet werden,
> INSERT INTO Tabelle(UnicodeSpalte) VALUES(N'Dieses w�re jetzt
> chinesisch');
>
> Verwendest Parameter (ADO/.NET) so mu�t ebenfalls NVarChar als Typ
> angeben.
> Siehe http://msdn.microsoft.com/de-de/library/ms191200.aspx
>
> Gru� Elmar
>


Elmar Boye

unread,
May 6, 2010, 5:17:20 AM5/6/10
to
"Michael Engel" <derh...@arcor.de> schrieb ...
> Ich habe die Spalte �ber das Management Studio auf NVARCHAR(n) ge�ndert.

> Leider keine besserung. Ich habe es mit einem ganz simplen INSERT Statement versucht:
>
> INSERT INTO Menue_Kat(Name,Buttontext) VALUES('China',N'??');

wo hast Du das versucht?
Da man hier nur "??" sieht:
Sind die Zeichen dort in Unicode (UTF-16)?
Verstehen tut der SQL Server n�mlich u. a. kein UTF-8. Siehe
http://msdn.microsoft.com/de-de/library/ms187828.aspx
"Grundlagen zu Unicode"

> M�ssen alle Spalten der Tabelle NVARCHAR sein?

Nur die in denen Du beliebige Zeichen speichern willst.
Wo Du mit westlichen Zeichens�tzen (was Latin1_General_CI_AS besagt) hinkommst
reicht varchar(n) - aber schon osteurop�ische Zeichens�tze (z. B. tschechisch)
lassen sich darin nicht speichern. Siehe
http://msdn.microsoft.com/de-de/library/ms187582.aspx
"Arbeiten mit Sortierungen"

> Wie gehe ich sicher, dass es sich um eine UnicodeSpalte handelt?

Das solltest Du im Management Studio sehen.
N[VAR]CHAR besagt, dass die Spalte Unicode-Daten aufnehmen kann.

Gru� Elmar

0 new messages