私はlibodbc++
ODBCラッパーをC++に使用しています。これはJDBCと同様に設計されています。私は準備文"INSERT INTO t1 (col1) VALUES (?)"
を持っています。ここでt1.col1
はVARCHAR(500)
と定義されています。は255バイトより長い文字列をODBC準備文のパラメータ値として使用できますか?
statement->setString(1, s)
を呼び出すと、s
の値は255
に切り捨てられます。私はlibodbC++ライブラリを疑っていますが、ODBCについてよく知らないので、ラッパーが基になるODBCの制限を公開していないことを確認したいと思います。 ODBC APIのリファレンスは、すばやくスキミングするのが難しく、率直に言って私はそれをしたくないので、基本的な質問をするために私を許してください。
注:同じライブラリを使用して準備されていないパラメータ化されていないパラメータinsert
は長い値を挿入するため、MySql DBの問題はありません。
問題は、libodbC++のドキュメントがかなり単純で、古くなっていることです。私のための正しいソリューションは、mysqlコネクタ/ C++に移行することだと思います。これは非常によく似たインターフェースを持っています。 – davka
'SQLBindParameter'を' libodbC++ 'ソースで見つけ、それがどのパラメータを使用しているかを見ることができます。おそらくそこにはいくつかの制限があります。それからそれを可変にする方法を探します(255はデフォルト値かもしれません)。 –