Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   TSQLConnection / Oracle / NSL_CHARACTERSET ändern (https://www.delphipraxis.net/171994-tsqlconnection-oracle-nsl_characterset-aendern.html)

tofse 7. Dez 2012 08:08

AW: TSQLConnection / Oracle / NSL_CHARACTERSET ändern
 
ich schaue mir das mal an.
Irgendwie hatte ich es mir so vorgestellt
Zitat:

TZConnection.ClientCodePage := 'WE8MSWIN1252';
TZConnection.UserName etc.....
Danke

Delbor 8. Dez 2012 08:33

AW: TSQLConnection / Oracle / NSL_CHARACTERSET ändern
 
Hi tofse

Du arbeitest mit TSQLConnection, also mit DBExpress? Seit mW. D2010 gibt es dazu ein komplett überarbeitetes DBX-Framework. Und dieses enthält Routinen, um empfangene Strings in den Zeichensatz der Anwendung umzuwandeln.

Ich selbst arbeite zwar mit MySQL, greife aber auch mit den DBExpress-Komponenten auf den Server zu. Ein Stringgrid befülle ich zB. wie folgt:

Delphi-Quellcode:
    while not DelborDataMod.SQLDataSetXE.Eof do
    begin
      StrGridKathegory.Cells[0, i] := IntToStr(DelborDataMod.SQLDataSetXE.FieldByName('Kath_ID').AsInteger);
      StrGridKathegory.Cells[1, i] := UTF8ToUnicodeString(DelborDataMod.SQLDataSetXE.FieldByName('Kategorie').AsString);
      DelborDataMod.SQLDataSetXE.Next;
      inc(i);
    end;
Damit hast du zwar nicht den Zeichensatz des Servers geändert, sondern nur den der Anwendung. Ausserdem müsstest du dir noch was einfallen lassen, falls du mit Datensensitiven Komponenten arbeitest - ohne dein Zutun zeigen die sonst den Zeichensatz so an, wie er vom Server kommt.
Natürlich hat der Server auch eine sessionspezifische Variable CLIENTDATASET - eine Oracel-DB wohl ebenso wie MySQL.

Gruss
Delbor

PS:

Zitat:

Wie kann ich NLS_CHARACTERSET in Delphi (TSQLConnection) setzen????
Hmm... Solange das der Charakterset deiner Verbindung ist, kannst du das sicher tun - in MySQL gibt's für sowas das SQL-Statement 'SET @@session.character_set_client = ''wasauchimmer'''.
Oracel müsste wohl auch sowas haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.
Seite 2 von 2     12   

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