0
我有一个脚本可以执行一堆SQL插入,但我一直试图添加一个将选择查询的返回值赋值给变量的节。C++从SQL Server分配变量值SELECT
的代码我一直用做插件是:
if (SQL_SUCCESS != SQLExecDirect(sqlstatementhandle, (SQLCHAR*)"BULK INSERT mytable FROM 'C:/dir/myfile.csv' WITH (FIRSTROW = 1, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');", SQL_NTS)) {
show_error(SQL_HANDLE_STMT, sqlstatementhandle);
这一切工作正常,但我无法弄清楚如何使用查询的输出。输出将是一个单一的int值,我想分配给一个int变量。
道歉,如果这是非常明显的事情。
编辑
基于下面的答案,下面已经为我工作。谢谢!
SQLRETURN retcode;
SQLHSTMT hstmt; // I use my own stmnthndl(sqlstatementhandle) below, this line left in for demonstration
retcode = SQLExecDirect(sqlstatementhandle, (SQLCHAR*)"SELECT count(*) FROM mytable;",SQL_NTS);
SQLINTEGER sCustID;
SQLLEN cbCustID;
if (retcode == SQL_SUCCESS) {
while (TRUE) {
retcode = SQLFetch(sqlstatementhandle);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
// get the first column
SQLGetData(sqlstatementhandle, 1, SQL_C_ULONG, &sCustID, 0, &cbCustID);
//You can now print it
cout << "CustID:" << sCustID;
}
else {
break;
}
}
}
非常感谢,不得不作出一个改变 - 我不知道这是否与我的代码的其余部分是如何布置的?我不得不在查询前添加(SQLCHAR *) – dailygrind