我正与MSSQL ODBC C ++代码的工作:
Session session("ODBC", connectionString);
Statement select(session);
select << sql;
select.execute();
Poco::Data::RecordSet rs(select);
bool more = rs.moveFirst();
std::size_t cols = rs.columnCount();
std::stringstream ss;
ss << "<table>";
while (more)
{
ss << "<row>";
for (std::size_t col = 0; col < cols; ++col)
{
std::string cn = rs.columnName (col);
ss << "<" << cn << ">";
ss << rs[col].convert<std::string>();
ss << "</" << cn << ">";
}
ss << "</row>";
more = rs.moveNext();
}
ss << "</table>";
所有工作正常,但如果我试图SQL循环,例如:
DECLARE @database_name sysname ;
SET @database_name = NULL;
WHILE @database_name IS NOT NULL
BEGIN
SET @database_name = NULL;
END;
SELECT '0'
然后我有错误在线路:BOOL更= rs.moveFirst();
断言违规:提取物()的大小()的文件。 “C:\外部\ POCO \ \包括波科/数据/ RecordSet.h”,行241没有while循环SQL所有工作,在MSSQL Server Management Studio中的所有工作,并在ODBC查询工具,它没有问题,但它不与POCO工作。 有什么建议么 ?