为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
DM Database Server 64 V8
DB Version: 0x7000c
03134283914 - 20220909 - 169171 - 20009
【操作系统】:
达梦服务器:KylinV10SP1 x86_64
连接客户端:Centos7 x86_64
【CPU】: x86_64
【问题描述】*:
通过DPI接口访问高版本达梦8,存在以下两个问题(同样的代码在达梦7和达梦8.1上是正常的):
以下是测试代码:
dameng.zip
NULL值通常可以通过以下方式绑定
char ustrnull[20] = {0};
slength ustrnull_ind = DSQL_NULL_DATA;
rt = dpi_bind_param(mystmt, 3, DSQL_PARAM_INPUT, DSQL_C_NCHAR, DSQL_VARCHAR, sizeof(ustrnull), 0,(sdbyte *)ustrnull, sizeof(ustrnull), &ustrnull_ind);
if(!DSQL_SUCCEEDED(rt)) {
dpi_err_msg_print(DSQL_HANDLE_STMT, mystmt);
return rt;
}
TEXT/CLOB 通常可以这样绑定,具体报错需要看一下实际绑定代码
rt = dpi_bind_param(mystmt, 8, DSQL_PARAM_INPUT, DSQL_C_NCHAR, DSQL_CLOB, sizeof(utext), 0, &utext, sizeof(utext), &utext_ind);
if(!DSQL_SUCCEEDED(rt)) {
dpi_err_msg_print(DSQL_HANDLE_STMT, mystmt);
return rt;
}