mikro79
Goto Top

Datentyp NUMBER(11) aus Oracle-DB in C ausgeben

Hey Leute,

mich quält ein Problem....
Ich will aus einer Oracle DB Dten auslesen und später in eine SQL-DB einfügen.
Zunächst habe ich versucht die Daten aus der ORACLE DB auszulesen und auszugeben.
Ich hole eininige Daten vom Typ "VARCHAR2" und zwei vom typ "NUMBER(11)".
Die Zeichenketten kann ich problemlos auslesen und ausgeben:


nResult = SQLBindCol(hSQL, 2, SQL_C_CHAR, szArtBez, 100, &nWork);


Bei den NUMBER(11) ist dies leider nicht der Fall. Hier der Versuch:


nResult = SQLBindCol(hSQL, 3, SQL_C_FLOAT, &nVerwNr, 100, &nWork);


als Datentaypen habe ich hier auch schon SQL_C_SLONG, SQL_C_ULONG, SQL_C_SSHORT, SQL_C_USHORT usw. probiert.

Immer mit dem gleichen Ergebnis. Die Werte, die ich bekomme stimmen einfach nicht. Die "besten" Werte kommen noch bei dem Typ SQL_C_SLONG. Meine Nachforschungen haben schon ergeben, dass die Werte hier bis auf das niedrigste Byte stimmen. Dies wird allerdings komplett ignoriert. Werte z.B. von 7169 bis 7423 ergeben 7168.
Komischerweise werden kleine Werte (aus einer anderen Spalte der Tabelle, aber auch NUMBER(11) ) komplett richtig dargestellt.

Weiss da einer Rat... Bin am verzweifeln.....

Danke und Gruß,
Mirko

Content-ID: 57428

Url: https://administrator.de/contentid/57428

Ausgedruckt am: 26.11.2024 um 16:11 Uhr