1

CS_VERSION_100 で sybase 15/12.5 を使用しています

ct_param を使用しようとすると、エラーが発生します。

An illegal value of 0 was placed in the status field of the CS_DATAFMT structure.

しかし、私は自分の構造を作成します。

CS_DATAFMT datafmt;
strcpy(datafmt.name, "@interface");
datafmt.namelen = 11;
datafmt.datatype=CS_INT_TYPE;
datafmt.maxlength=4;
datafmt.status=CS_INPUTVALUE;
datafmt.locale = NULL;
datafmt.format = 0;
datafmt.scale = -99999;
datafmt.count = 1;
datafmt.usertype=0;

ct_param(command, &datafmt, /* value 300 */, 4, 0)

varchar を使用すると 1 (true) が返されますが、もちろん、int パラメータの代わりに varchar パラメータを配置しようとしていることがわかります。私は最後のバージョンに変更しましたが、sybase が maxlength からステータス値を取得しているようです..今、値が 4 であることがわかりました.maxlength を 256 に変更すると動作します...

4

2 に答える 2

0

戻り変数を設定しているようです - The Fine Manualによる と、 CS_INPUTVALUE ではなく CS_RETURN を datafmt.status として使用する必要があります

于 2013-03-26T02:17:35.060 に答える