Das liegt aber daran, dass du die Daten nicht als Parametermarker definierst.
Der Fehler bezieht sich ja auf Zeichenfolgekonstante!
Schreibe ein Command-Objekt

update table set var = ? where ...

Für jedes "?" wird ein Parameter per CreateParameter-Methode mit der entsprechenden Ausprägung (z.B. String 2^30) angelegt. Dann können auch Daten die länger als 32KB sind bearbeitet werden.

Ein SQL-Befehl kann 32KB nicht überschreiten, das hat aber mit den Daten selber nichts zu tun.
Auch und gerade bei ODBC sollte man mit Parametermarkern und Parametern arbeiten, das ist erheblich performanter und auch Typsicherer. Ich benötige keine Konvertierung (Dezimal->String) und keine Hochkommatadoppelung.