View Full Version : CWB011 Ein an einen Systemaufruf übergebener Puffer kann die Rückgabedaten
Hallo,
ich habe eine AS400 mit Release V5R2M0 und lassen von einem Cliebt eine Anwendung gegen die DB2/400 laufen.
Auf dem Client ist ebenfalls iSeries Access V5R2M0 mit Servicepack SI16915
Bei einem Aufruf kommt folgende Meldung:
Database Access Error Rc = 30200
FEHLER BESCHREIBUNG : [IBM][Client Access Express ODBC-Treiber (32-Bit)]Spalte 7: CWB0111 - Ein an einen Systemaufruf übergebener Puffer kann die Rückgabedaten nicht aufnehmen
Kann mir da jemand einen Tip geben?
Gruß
Reinhold
Hallo Reinhold,
poste entweder hier Deine Emailaddresse oder schicke sie mir
über private Nachrichten, dann sende ich eine Email.
Hallo,
hier meine E-Mail Adresse:
rcramer@pi-ag.com
Scheint ein Problem bei DBCS bzw. UNICODE-Daten zu sein.
Mit welchen Methoden greifst du auf die AS/400 zu ?
- verküpfte Tabelle
- DAO
- ADO
Enthält deine Datenbank-Tabelle ggf. Felder mit CCSID 13488 ?
Access/DAO kommt dann mit dem Feldtyp nicht zurecht.
Wenn du native mit ADO zugreifst, gibt es da keine Probleme.
Ich die ODBC-Datenquelle definiert und das Programm greift mit SQL-Statement auf Physische Tabellen der iSeries zu.
Die Tabellen haben alle die CCSID 273
DAO und ADO kenne ich leider nicht.
Native kann ich den Select nicht absetzen da er über mehrere Seiten gehen würde.
Nunja, das Programm muss ja irgendwie die SQL-Statements ausführen.
Dazu gibt es mehrere Methoden:
ActiveX-Objekte á la ADO/DAO oder in C/C++ die nativen C-SQLxxx-Befehle.
In ADO/DAO dürften diese Probleme nicht auftreten, da diese intern genügend Speicher bereitstellen.
Verwendet man direkte C-Befehle muss das Programm nun mal Puffer bereitstellen und, wie die Meldung ja besagt, ist der Empfangspuffer für die 7. Spalte zu klein !
Prüfe mal den Select, welches das 7. Feld ist, wie gross es ist und wieviel Puffer für SQLBindColumn/SQLGetData bereitgestellt wird.
Danke für die Hilfe, es liegt an der Programmierung. Ich habe festgestellt das eine 2k große Variable mit 2,5k gefüllt werden soll.
Für solche Fälle hilft z.B. SQLDescribeCol um entsprechenden Puffer anzulegen.