Jump to content

Prg2020

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

Fortschritt von Prg2020

Rookie

Rookie (2/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

0

Reputation in der Community

  1. 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?
×
×
  • Neu erstellen...