MSDN docsによる0〜255の数値を取るTINYINT列に挿入しようとしています。残念ながら、それは0から127までかかります。私は128以上を挿入しようとした場合、それは文句:有効なTINYINT値を拒否しているMSSQL ODBC(数値が範囲外です)
[22003] (native 0): [Microsoft][ODBC Driver 11 for SQL Server]Numeric value out of range
、それはすべての整数を取るためのもの、一般的なコードですが、私はそれが数字0〜127のための理由は問題べきではないと思うので、データがSQL_C_SBIGINT
としてバインドされていますそれは正しく動作します。 SQL_C_CHAR
文字列として送信するオプションもありますが、同じエラーが返されます。
問題がどこにあるのでしょうか?
'SQL_TINYINT'を試しましたか? – wdosanjos
署名されていない/署名されたものであるのだろうか?コード内の値は符号なしintですか? – MikeS
Nope。私は、64ビットのintを使用する1つのプログラミング言語用のODBCドライバを作成しているので、BIGINTとしてすべてを送信しています。 SQL Serverが自動的に変換するべきではありませんか? AFAIKはい、それが0-127で動作するので、私はそれが問題だとは思わない。そして私が言ったように、私はまた文字列として送信しようとしましたが、これもうまく機能しましたが、再び0-127のためだけでした。 – omusil