PDA

View Full Version : Probleme bei Auslesen von Daten aus db2 (C#)



Oli001
18-06-10, 09:53
Hallo,

sehr kurioses Problem:

Ich habe eine Datei aus der ich Daten auslesen möchte.

dr.GetString(1) - Feldtyp der db2-Datei Character (30)

Ich bekomme eine Exception, die mir erzählt das ich ein ByteArray bekomme und somit nicht in String umwandeln kann. Bei allen anderen Tabellen funktioniert das allerdings problemlos.

Was kann da an der Datei nicht stimmen?

Grüße Oli

Fuerchau
18-06-10, 10:18
Wahrscheinlich hat die Datei CCSID 65535 und wird als Binär interpretiert.
In der Verbindung musst du die Eigenschaft CCSID 65535 umsetzen (ConnectionStringBuilder?) verwenden oder der Datei eine CCSID geben.

Oli001
18-06-10, 10:21
Wenn ich das umsetzte hat das dann Folgen für die anderen Dateien, die eben nicht CCSID 65535 haben?

Fuerchau
18-06-10, 11:20
Das hat keine Auswirkung, da korrekt umgesetzt wird.
Allerdings werden "echte" Binärdaten dann auch umgesetzt.

Oli001
18-06-10, 11:27
Hallo,

danke erstmal für den Tipp. Allerdings schaffe ich es nicht den Connection String richtig zu setzten.

Ich habe mich mal informiert und man muss wohl BinAsChar=true im ConStr setzen.

Leider ohne Erfolg:

private static String connectionString = "Provider=IBMDA400;Data Source=as400et;User ID=USER;Password=PW;BinAsChar=true;CCSID=437;PcCod ePage=437";


Kann mir da jemand einen Tipp geben was falsch ist?


Grüße Oli

Oli001
18-06-10, 11:57
Hallo,
an alle die ein ähnliches Problem haben, hier die Lösung:

select cast(name as varchar(30) CCSID 870) from table where firnr = 1 and kdnr = 1

Danke an alle, Oli

Fuerchau
18-06-10, 12:02
Bedenke dabei, wenn du in der Verbindung mit CCSID 437 arbeitest, dass es ggf. zu Darstellungsverlusten bei der Umwandlung von 870 kommt.