Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi delphi 7 und tschechische sonderzeichen (https://www.delphipraxis.net/126125-delphi-7-und-tschechische-sonderzeichen.html)

etom291272 18. Dez 2008 13:43


delphi 7 und tschechische sonderzeichen
 
Tag zusammen...

Folgende Konstellation:
Anwendung in Delphi7
Datenbank Microsoft Sql Server (msde)

Die Anwendung läuft auf einem tschechischen rechner. in einigen feldern werden inhalte mit sonderzeichen eingegeben (z.b das C mit dem Haken oben - genannt hacek)
Die Tschechischen Sonderzeichen können auch in den Masken richtig eingegeben werden und werden auch korrekt angezeigt.
Ich muß aber für einen Ausdruck einen bestimmten Datensatz in eine Tabelle in die Datenbank im Sql Server schreiben.
Dazu erzeuge ich ein insert into statement das ich über die ado conn direkt absetze.
Also über mehrere TBetteradodataset die darunter direkte Felder hat hole ich mir den Wert mit value und verwende dies dann für das sql statement.
In der Datenbank wird aber dieser Datensatz ohne den Sonderzeichen angelegt und so erfolgt dann auch der ausdruck.
Also wird zum Beispiel das C mit dem Haken oben als C ohne den Haken gespeichert und nachher auch so gedruckt.

Ich vermute das beim erhalten des Datenbankfeldes über das TBetteradosetfeld die Information des Sonderzeichens verloren geht, oder passiert das beim Absetzen des Sql Statements was über die ADO Connection läuft.

wenn ich das richtig verstanden haben, kann der Datentyp String (= AnsiString) mit Sonderzeichen und internationalen Sonderzeichen bzw. Unicode nicht umgehen???

bin für jeden Ratschlag oder Tip dankbar.

Bernhard Geyer 18. Dez 2008 13:47

Re: delphi 7 und tschechische sonderzeichen
 
Hast du varchar oder nvarchar-Felder?
Verwendest du prepared Statements?
Auf welcher Default-Sprache läuft der Server?
Auf welcher Collation läuft deine Datenbank?

etom291272 18. Dez 2008 13:50

Re: delphi 7 und tschechische sonderzeichen
 
nvarchar
nein keine parameter statements - ganz normale insert into als widestring zusammengesetzt und über das ado connection execute abgesetzt.
default sprache denke ich ist tschechisch - da er auf diesem system installiert wurde (wie kann man das ermitteln)
collation der datenbank - (wenn es nur um die sortierung geht können wir das ignorieren)

und schonmal danke

Bernhard Geyer 18. Dez 2008 13:56

Re: delphi 7 und tschechische sonderzeichen
 
Zitat:

Zitat von etom291272
nein keine parameter statements - ganz normale insert into als widestring zusammengesetzt und über das ado connection execute abgesetzt.

Dann änder das mal schnell! Könnte u.U. das Problem verursachen.
Aber ich binn ja nicht. Ergänze mal Testhalber vor jedem Text ein N (INSERT into .. VALUES(N'abcdef', ...).

Hast du schon mal im SQL Server Profiler nachgeschaut was ankommt?

etom291272 18. Dez 2008 14:13

Re: delphi 7 und tschechische sonderzeichen
 
Aber ich binn ja nicht. ???

sql profiler - bitte um erklärung? hab ich noch nie benutzt

Bernhard Geyer 18. Dez 2008 14:18

Re: delphi 7 und tschechische sonderzeichen
 
Zitat:

Zitat von etom291272
sql profiler - bitte um erklärung? hab ich noch nie benutzt

SQL Management Studio starten + Einlogen.
Aufruf über "Extras/SQL Server Profiler" starten und dann erstmal etwas in der OH unter "SQL Server Profiler" einlesen.

Mit dem Profiler siehst du was SQL-Technisch bei der DB ankommt.

etom291272 18. Dez 2008 14:20

Re: delphi 7 und tschechische sonderzeichen
 
hab ich das richtig verstanden.

über ein TADOCommand Objekt die Anweisung mit Parametern zusammenbauen
die Paramter befüllen wie immer

und dann absetzen gegen die datenbank mit execute?

Bernhard Geyer 18. Dez 2008 14:40

Re: delphi 7 und tschechische sonderzeichen
 
Zitat:

Zitat von etom291272
über ein TADOCommand Objekt die Anweisung mit Parametern zusammenbauen
die Paramter befüllen wie immer

und dann absetzen gegen die datenbank mit execute?

Ja. Parameter verursachen weniger Probleme (und vor allem keine Sicherheitslücken ALA SQL Injection) und bei verwendung von prepared Statements sind sie auch schneller.

etom291272 18. Dez 2008 16:09

Re: delphi 7 und tschechische sonderzeichen
 
:cheers: ich danke dir vielmals das mit den parametern scheint die lösung gewesen zu sein


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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