0

全て、

私のコードは次のとおりです。

std::wstring ownerName = table->GetTableOwner();
SQLWCHAR *owner_name = new SQLWCHAR[ownerNameLen + 2];
int ownerNameLen = ownerName.length();
SQLLEN cbOwnerName = ownerNameLen == 0 ? SQL_NULL_DATA : SQL_NTS;
ret = SQLBindParameter( stmt_tableProp, 2, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_WCHAR, ownerNameLen, 0, owner_name, 0, &cbOwnerName );

owner_name に実際のデータが含まれている場合、SQLBindParameter の呼び出しは成功します。ただし、owner_name が '' の場合、呼び出しは失敗します。そして、私が得ているエラーメッセージは「HY104 - 精度またはスケール値が無効です」です。

MSDN によると、サイズの値は、実際のパラメーターのサイズではなく、列のサイズである必要があるようです。これは正しいです?または、バインディング値の長さとして 0 を渡す必要がありますか?

また、異なる値を使用するこのページもあります。

誰かが光を当ててくれませんか?

ティア!

4

1 に答える 1