我开发了一个小型 C++
工具,它可以从 SQL 结果填充 xml。我使用 C ODBC
库连接到 SQL 服务器。该函数获取记录:
...
char result[5][64]; //More flexible
...
for (i = 0; i < columns; i++) {
SQLBindCol(stmt, i + 1, SQL_C_CHAR, result[i], sizeof(result[i]), &indicator[i]);
}
while (SQL_SUCCEEDED(SQLFetch(stmt))) {
for (i = 0; i < columns; i++) {
if (indicator[ i ] == SQL_NULL_DATA) {
cout << format("Column %1% : NULL") % i << endl;
}
else {
cout << format("Column %1% : %2%") % i % result[i] << endl;
}
}
}
我将结果保存在结果字符数组
中。我想以更动态的方式执行此操作。如果有更多记录或值更长,则要保存。我知道 C
中的 malloc
和 C++
中的 new
,但在我的情况下如何使用它?任何想法?我应该切换到tiodbc
行吗?
最佳答案
首先计算来自数据库的记录数,然后使用 malloc 来计算 分配该大小的内存。我认为这会让我更加动态
关于C ODBC将sql结果保存在动态数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643285/