Forum: SQL |
Thema:
Internationale Daten speichern |
Von:
G. Guest (
15.07.2005 10:27) |
Hallo, Forum
ich muss aus verschiedenen Tabellen Daten sammeln und in eine eigene Tabelle schreiben. Das Problem liegt darin, dass Texte in Sprachen mit "exotischen" Zeichensätzen wie Griechisch oder Russisch nicht gespeichert werden. Die Zieltabelle ist wie folgt definiert:
CREATE TABLE [dbo].[WEB_Sprachen] (
[SprachID] [int] NOT NULL ,
[Bezeichnung] [nvarchar] (100) COLLATE Latin1_General_CI_AS NULL ,
[Kennzeichen] [varchar] (10) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
Wenn ich jetzt den INSERT-Befehl absetze (der laut VB-Studio-Befehlsfenster die exotischen Zeichen enthält), werden in der Datenbank nur ?? gespeichert (im SQL Server Explorer nur ?? zu sehen, während in den Ursprungstabellen der richtige Text angezeigt wurde).
Der Fehler passiert mir also beim Speichern. Der INSERT wird mit ExecuteNonQuery in die DB geschrieben. Hier der Insert:
INSERT INTO WEB_Sprachen (
SprachID, Bezeichnung, Kennzeichen) VALUES (
10,
N'??', ' Hier werden im Befehlsfenster die griechischen Zeichen angezeigt
'GR'
)
Was mache ich falsch?
Gruss Alex
Betreff |
Von |
Datum |
|
  |
Re: Internationale Daten speichern
Hallo Alex,<br><br>dein Code sieht sehr gut aus und funktioniert bei mir einwandfrei! Fragezeichen bekomme ich nur, wenn ich das vorangestellt N für Unicode weglasse - eh klar.<br><br>Meiner Meinung nach kann... |
 |
 |
 |
|
|
Peter
Knoll
|
15.07.2005 15:08 |
|
  |
Re: Internationale Daten speichern
Hab das jetzt mal probiert: in Query analyzer kann ich den Insert-Befehl mit den Sonderzeichen absetzen und die werden dann auch gespeichert. Wenn ich den Insert aus DotNet raus abschicke, gibts... |
 |
 |
 |
|
|
G.
Guest
|
18.07.2005 16:22 |
|
  |
Re: Internationale Daten speichern
Hi Alex,<br><br>zwei Tipps noch, wie es bei mir funktioniert:<br>1) Unicode-Zeichen zum testen immer codiert eingeben, da der Sourcecode NICHT in Unicode gespeichert wird<br>2) Ich würde dir empfehlen, zum... |
 |
 |
 |
|
|
Peter
Knoll
|
19.07.2005 00:18 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!