![]() |
Datenbank: MSSql • Version: 2008 • Zugriff über: Zeos
MSSql, Zeos und Umlaute
Hallo,
wenn ich Umlaute über ein TEdit in eine Mssql Datenbank schreibe wird dieses irgendwie nicht richtig angezeigt. Das Wort "für" wird "für". Wenn ich allerdings einen Eintrag mir einen Umlaut dierekt über das Sql Server Managment Studio hinzufügen passiert das nicht. Auch wenn ich eine Abfrage mache nach einem bestimmten Wort, nehmen wir an ich habe einen Eintrag über das Studio gemacht mit dem Wort "für" und jetzt Filter ich alle Einträge wo dieses drinne vorkommt, wird dieser Eintrag nicht angezeigt. Im Managment Studio hingegen funktioniert diese Abfrage einwandfrei.
Code:
Kann das an irgendwie an Zeos liegen, dass ich irgend eine wichtige Einstellung übersehen habe?
SELECT * FROM tbl1 WHERE AnzeigeTxt='für' ORDER BY ID;
|
AW: MSSql, Zeos und Umlaute
Da wird wohl in ZEOS irgendwo eine unnötige UTF8-Codierung drin sein. MS SQL kann Unicode auf textfeldern (Wenn man die n-Version (nvarchar statt varchar) verwendet seit ca. 15 Jahren. Such mal in den Connection/Table/Query-Properties ob du irgendwas mit UTF8 entdeckst.
|
AW: MSSql, Zeos und Umlaute
versuch dies:
Delphi-Quellcode:
Solle so ähnlich auch für MSSQL funktionieren. Von den Properties ist sicher noch einiges überflüssig. Einfach mal testen welche Zeile für dich relevant ist.
SQLCnx:=TZConnection.Create(nil);
with SQLCnx do begin // Ein Firebird standard Connection Protocol:= 'firebird-2.1'; HostName:= '127.0.0.1'; Database:= 'c:\datenbank\Dings.fdb'; User := 'sysdba'; Password:= 'masterkey'; // hier das Zeos UTF8 Zeugs Properties.Clear; Properties.Add('character_set_client=utf8'); Properties.Add('character_set_connection=utf8'); Properties.Add('character_set_database=utf8'); Properties.Add('character_set_results=utf8'); Properties.Add('character_set_server=utf8'); Properties.Add('character_set_system=utf8'); Properties.Add('collation_connection=utf8_general_ci'); Properties.Add('collation_database=utf8_general_ci'); Properties.Add('collation_server=utf8_general_ci'); Properties.Add('Codepage=utf8'); end; [Edit]Ich verwende Zeos 7 mit D2k9 - sollte also vergleichbar sein.[/Edit] Gruß, Toni |
AW: MSSql, Zeos und Umlaute
Zitat:
|
AW: MSSql, Zeos und Umlaute
Zitat:
In einem anderen Forum hab ich gelesen das es reicht als Datentyp in der Tabelle für die Spalten vchar zu verwenden, allerdings habe ich noch immer das selbe Problem. |
AW: MSSql, Zeos und Umlaute
Hab grad nen Workaround für den Zeos Unicode Bug herausgefunden.
Delphi-Quellcode:
Ich verwende Firebird und ein Zeos 7 aus dem SVN, ist aber schon einige (viele) Monate alt. Vielleicht hilfts Einem.
sTest:='Möööp!';
// Geht so nicht wegen dem Unicode Bug der Zeos Komponenten // QryFelderweiterung.SQL.Text:='UPDATE Tabelle SET Feld1 = '''+sTest+''' WHERE ID = 2'; QryFelderweiterung.SQL.Clear; QryFelderweiterung.SQL.add('UPDATE '+Tabelle+' SET Feld1 = :w0 WHERE ID = 2'; QryFelderweiterung.Prepare; QryFelderweiterung.Params[0].Value:=sTest; QryFelderweiterung.ExecSQL; Gruß, Toni |
AW: MSSql, Zeos und Umlaute
Hast Du irgendwo schon erwähnt, wie Deine DB codiert ist und welche Textfeldtypen Du verwendest ((N-)VarChar, (N-)Char, ..)?
M.E. ist es nicht zwingend notwendig, eine ordentliche Codierung anzugeben, um erfolgreich Multibyte Zeichen in ein SingleByte Feld einzutragen, es könnte aber hilfreich sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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 by Thomas Breitkreuz