【发布时间】:2018-03-17 18:53:12
【问题描述】:
我一直在寻找有关这方面问题的见解,但找不到;这可能是我忽略的一些愚蠢的事情。希望你能看到!
我在 C++ pgm 中有一个 while 循环,我使用 ODBC 将 SQL Server 数据加载到 3 个不同的数组中(每列 1 个)。如果我在 while 循环之外增加数组计数器(在代码上方,已注释掉),当然它不会推进数组条目,但它不会爆炸。如果我将增量 (rowNum++) 移动到 while 循环中(如图所示),我会得到一个 stackoverflow 异常。任何人都可以给我一个提示吗?非常感谢!
else {
short iptMKTNUM;
short iptDAYNUM;
float iptPX;
int rowNum = 0;
//rowNum++;
while (SQLFetch(SQLStatementHandle) == SQL_SUCCESS) {
SQLGetData(SQLStatementHandle, 1, SQL_C_DEFAULT, &iptMKTNUM, sizeof(iptMKTNUM), NULL);
SQLGetData(SQLStatementHandle, 2, SQL_C_DEFAULT, &iptDAYNUM, sizeof(iptDAYNUM), NULL);
SQLGetData(SQLStatementHandle, 3, SQL_C_FLOAT, &iptPX, sizeof(iptPX), NULL);
MktNum[rowNum] = iptMKTNUM;
DayNum[rowNum] = iptDAYNUM;
Price[rowNum] = iptPX;
cout << "Mkt/Day/Px IS " << iptMKTNUM << " " << iptDAYNUM << " " << iptPX << endl;
cout << "Mkt/Day/Px IS " << MktNum[rowNum] << " " << DayNum[rowNum] << " " << Price[rowNum] << endl;
cout << "rowNum is " << rowNum << endl;
rowNum++;
}
}
【问题讨论】:
-
发布minimal reproducible example。您的代码被剪断与问题无关。可能您访问超出数组范围。
标签: c++ sql-server exception odbc