Zitat Zitat von Fuerchau Beitrag anzeigen
DB2-Cloudescape hat ja mit AS/400 nix am Hut sondern ist eine ja eine eigene DB.
Ich kann damit auf die bereits im System vorhandenen Datenbanken zugreifen (und genau dafür ist diese PHP-Extension auch gedacht). Wäre es ein eigenes DB-System, so wären keine Daten vorhanden und man müsste erst Datenbanken/Tabellen anlegen.
CCSID's spielen da überhaupt keine Rolle, da ja sowieso alles in Java ist (Unicode ist da Standard).
...
Beim Lesen von Resultsets/Recordsets sind die Unicode-Spalten auch automatisch in Unicode, da dies durch die Tabelle bestimmt wird. Eine Umsetzung ist da nicht erforderlich.
Das kann ich nicht bestätigen und stimmt so nach meiner bisherigen Forschungsarbeit nicht! Wenn Deine Annahme stimmen würde, dann bekäme ich bei einem SELECT Zeichen in Unicode. Das ist aber nicht der Fall - ich bekomme die Zeichen in ISO 8859-1 geliefert (mein User ist auf CCSID 273 eingestellt).

Intern hat das System, und optional jede Datei, jede Datenbank und jede Tabelle eine eigene CCSID. Ist keine vorgegeben, so greift die CCSID der übergeordneten Instanz.
Je nach zugreifendem Prozess/User, der ebenso eine CCSID besitzt, wandelt die AS400 die Zeichen in den jeweiligen Zeichensatz wenn sie sich unterscheiden und zwar in beide Richtungen (lesen/schreiben).

Dies erscheint auch logisch. Wenn Zeichenketten in einem SQL-Query übergeben werden, dann muss bekannt sein, wie diese interpretiert werden müssen, damit die AS400 weiß von welchem Quellzeichensatz in welchen Zielzeichensatz konvertiert werden muss.