我正在使用带有 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(真),但它当然告诉我我正在尝试将 varchar 参数放在 int 参数的位置。我更改为上一个版本,现在似乎 sybase 从 maxlength 获取状态值。现在它告诉我该值为 4。如果我将 maxlength 更改为 256,它可以工作...