C ODBC将sql结果保存在动态数组中

标签 c odbc dynamic-arrays

我开发了一个小型 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 中的 mallocC++ 中的 new,但在我的情况下如何使用它?任何想法?我应该切换到tiodbc行吗?

最佳答案

首先计算来自数据库的记录数,然后使用 malloc 来计算 分配该大小的内存。我认为这会让我更加动态

关于C ODBC将sql结果保存在动态数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643285/

相关文章:

c - 在c中递归地在末尾插入单链表

azure - Azure 数据工厂中的 ODBC 连接

javascript - 在 JavaScript 中将数据构建到多维数组中

dynamic-arrays - SetLength 的复杂度是多少?

c - 为什么 pcap_next_ex 的第三个参数是不兼容的指针类型?

c - 为什么我的加密文本没有改变?

oracle - 由于系统错误 193 : (Oracle in instant client_11_2, C :\. ..\SQORA32.dll),无法加载 VBA ODBC Oracle 指定的驱动程序

database - 使用 VB6 Access 远程数据库

c++ - 抽象类输出问题

c - 夏令时开关问题