Poco ODBC e mentre ciclo SQL

sto lavorando con il codice C ++ di mssql odbc:

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 << ""; while (more) { ss << ""; for (std::size_t col = 0; col < cols; ++col) { std::string cn = rs.columnName (col); ss << "<" << cn <"; ss << rs[col].convert(); ss << "</" << cn <"; } ss << ""; more = rs.moveNext(); } ss << "
";

tutto funziona bene, ma se provo il ciclo sql, ad esempio:

 DECLARE @database_name sysname ; SET @database_name = NULL; WHILE @database_name IS NOT NULL BEGIN SET @database_name = NULL; END; SELECT '0' 

quindi ho errore in linea: bool more = rs.moveFirst ();
Violazione delle asserzioni: extractions (). Size () nel file “C: \ External \ poco \ include \ Poco / Data / RecordSet.h”, riga 241 senza ciclo in sql funzionante, in MSSQL server management studio tutto funzionante, e in ODBC Query Tool non è un problema, ma non funziona con poco. eventuali suggerimenti ?

Stai eseguendo un blocco di codice anonimo; se devi farlo in questo modo, dovrai trasformarlo in una stored procedure con nome.

Vedere ODBCSQLServerTest :: testCursorStoredProcedure () per un esempio su come farlo per ODBC di SQL Server.

Nota: avrete bisogno di una versione POCO superiore a 1.5.0.