匿名用户人大金仓DCI
适配人大金仓数据库,使用DCI获取查询结果时出错
data_tmp = (char *) malloc(STR_LEN_1024);
if (!data_tmp)
{
printf("data malloc fail\n");
return NULL;
}
memset(data_tmp, 0, STR_LEN_1024);
status = OCIDefineByPos(ds->stmthp, &defhp, ds->errhp,
icolumn,
(dvoid *) data_tmp,
STR_LEN_1024,
SQLT_STR,
(dvoid *) 0,
(ub2 *) 0,
(ub2 *) 0,
(ub4) DCI_DEFAULT);
if (status != DCI_SUCCESS)
{
free_memory(data_tmp);
return NULL;
}
status = OCIStmtFetch2(ds->stmthp, ds->errhp, 1,
DCI_FETCH_ABSOLUTE,
recno + 1,
DCI_DEFAULT);
if (status == DCI_NO_DATA)
{
free_memory(data_tmp);
return NULL;
}
if (strlen(data_tmp) > 0)
{
data_sz = strlen(data_tmp) + 1;
if (ds->data)
ds->data = (char *) realloc(ds->data, data_sz);
else
ds->data = (char *) malloc(data_sz);
memset(ds->data, 0, data_sz);
strcpy(ds->data, data_tmp);
if (data_tmp)
free(data_tmp);
return ds->data;
}
if (data_tmp)
free(data_tmp);
return NULL; 查询多次后free(data_tmp); 出错 free(): invalid pointer
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论
