Jump to content

SQLPutData -> Fehler 22001 (String data right truncation)


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Guten Tag,

 

die Frage ist eher zu ODBC als zum SQL Server - ich hoffe, sie sit nicht ganz OT hier. Ich implementiere in einem ANSI C Programm Lesen und Schreiben der BLOB-Felder von unbekannter Größe (Tabellen-Feld: VARBINARY(MAX)). Die Idee ist - lesen und schreiben in Segmenten und im Programm Speicher nach dem Bedarf allozieren.

Habe die Benutzeranleitung zu den Funktionen SQLBindParameter, SQLParamData, SQLPutData (fürs Schreiben) и SQLGetData (fürs Lesen) mehr oder weniger verstanden. Als Erstes habe ich versucht, ein 40K array mit Ziffern 0-9 zu füllen, in 1К-Segmenten mit SQLPutData zu schreiben, dann Lesen und wieder schreiben - alles funktionierte. Als 2. Schritt habe ich die realen Daten (gespeichertes Bild) gelesen. Größe mit DATALENGTH() geprüft -7233. Beim Lesen - kein Problem. Beim Schreiben auch - solange ich die ersten 7 Segmente schreibe. Aber beim Rest von 233 Bytes kommt ein Fehler 22001 (String data right truncation). Durch Lesen der Fehlerbeschreibung in Microsoft-Doku wurde ich nicht  wirklich schlau. Rest vom array nach 7233 Bytes ist mit 0 (binär) gefüllt - warum meint der ODBC-Driver, dass "more data was send for a long parameter... than was specified in the length buffer"??? Ich habe schon alles mögliche versucht - komme aber nicht weiter. Hat jemand eine Idee?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...