问题描述
void * Data [NUM_ROW][NUM_COLS];
string insertTablePrepare = "INSERT INTO temp VALUES(";
for (size_t k = 0; k < NUM_COLS; k++) {
insertTablePrepare += "?";
if (k==NUM_COLS-1) continue;
insertTablePrepare += ",";
}
insertTablePrepare += ")";
hdl = mapi_prepare(dbh,insertTablePrepare.c_str());
for (size_t j = 0; j < NUM_ROW; j++) {
for (size_t k = 0; k < NUM_COLS; k++) {
switch (ColumnDataType[k]) {
case VARCHAR:
ret = mapi_param_type(hdl,k,MAPI_VARCHAR,Data[j][k]);
break;
case SMALLINT:
ret = mapi_param_type(hdl,MAPI_SHORT,Data[j][k]);
break;
case INT:
ret = mapi_param_type(hdl,MAPI_INT,Data[j][k]);
break;
case BIGINT:
ret = mapi_param_type(hdl,MAPI_LONG,Data[j][k]);
break;
case DECIMAL:
ret = mapi_param_type(hdl,MAPI_FLOAT,Data[j][k]);
break;
case DOUBLE:
ret = mapi_param_type(hdl,MAPI_DOUBLE,Data[j][k]);
break;
case REAL:
ret = mapi_param_type(hdl,Data[j][k]);
break;
case DATE:
ret = mapi_param_type(hdl,MAPI_DATE,Data[j][k]);
break;
default:
printf("UnkNow data type %d\n",ColumnDataType[k]);
}
}
ret=mapi_execute(hdl);
}
我创建了一个数据集,并将其放入二维空指针数组中。当我尝试使用mapi_prepare()和mapi_execute()将所有记录插入monetdb时,以上代码无法按预期工作。仅保留一条记录,即可成功插入。但是,当记录数大于一个时。程序报告
realloc():下一个大小无效
中止(核心已弃用)
任何人都可以在for循环中使用mapi_execute()来遍历所有插入记录。预先感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)