AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MSSql, Zeos und Umlaute
Thema durchsuchen
Ansicht
Themen-Optionen

MSSql, Zeos und Umlaute

Ein Thema von citybreaker · begonnen am 29. Mär 2012 · letzter Beitrag vom 19. Apr 2012
Antwort Antwort
citybreaker
(Gast)

n/a Beiträge
 
#1

MSSql, Zeos und Umlaute

  Alt 29. Mär 2012, 07:24
Datenbank: MSSql • Version: 2008 • Zugriff über: Zeos
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:
SELECT * FROM tbl1 WHERE AnzeigeTxt='für' ORDER BY ID;
Kann das an irgendwie an Zeos liegen, dass ich irgend eine wichtige Einstellung übersehen habe?

Geändert von citybreaker (29. Mär 2012 um 07:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: MSSql, Zeos und Umlaute

  Alt 29. Mär 2012, 07:38
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#3

AW: MSSql, Zeos und Umlaute

  Alt 29. Mär 2012, 07:44
versuch dies:

Delphi-Quellcode:
  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;
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.

[Edit]Ich verwende Zeos 7 mit D2k9 - sollte also vergleichbar sein.[/Edit]

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?

Geändert von Tonic1024 (29. Mär 2012 um 07:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: MSSql, Zeos und Umlaute

  Alt 29. Mär 2012, 08:46
versuch dies: ...

Solle so ähnlich auch für MSSQL funktionieren.
Wird nix bringen da MS SQL ein Unicdefähiges-Transportprotokoll hat das nicht solche Einstellungen benötigt. Ebenfalls arbeite die Datenbank (wenn man n-datentypen verwendet) mit UTF-16.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#5

AW: MSSql, Zeos und Umlaute

  Alt 30. Mär 2012, 07:38
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.
Habe jetzt mal die Properties von TZConnection und TZQuery überprüft, allerdings ist dort nirgendwo etwas eingetragen.
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.

Geändert von citybreaker (30. Mär 2012 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#6

AW: MSSql, Zeos und Umlaute

  Alt 19. Apr 2012, 08:14
Hab grad nen Workaround für den Zeos Unicode Bug herausgefunden.

Delphi-Quellcode:
  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;
Ich verwende Firebird und ein Zeos 7 aus dem SVN, ist aber schon einige (viele) Monate alt. Vielleicht hilfts Einem.

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?

Geändert von Tonic1024 (19. Apr 2012 um 08:16 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: MSSql, Zeos und Umlaute

  Alt 19. Apr 2012, 10:33
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.
Gruß, Jo
  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 21:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz