From: Aki Tuomi Date: Tue, 24 Nov 2015 13:40:15 +0000 (+0200) Subject: Consume variable length data in parts X-Git-Tag: dnsdist-1.0.0-alpha1~203^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdeaea1f043dcf56be33344b55a931605c75e301;p=thirdparty%2Fpdns.git Consume variable length data in parts --- diff --git a/modules/godbcbackend/sodbc.cc b/modules/godbcbackend/sodbc.cc index 4c68533a7a..562d4dda33 100644 --- a/modules/godbcbackend/sodbc.cc +++ b/modules/godbcbackend/sodbc.cc @@ -267,24 +267,25 @@ SSqlStatement* SODBCStatement::nextRow(row_t& row) { // cerr<<"got row"<(coldata), len)); + } else { + SQLCHAR coldata[4096]; + result = SQLGetData( d_statement, i + 1, SQL_C_CHAR, (SQLPOINTER) coldata, 4096, &len ); + std::string strres = std::string(reinterpret_cast(coldata), std::min(4095,len)); + while(result == SQL_SUCCESS_WITH_INFO && len > 0) { // all data is consumed if len < 1 + result = SQLGetData( d_statement, i + 1, SQL_C_CHAR, (SQLPOINTER) coldata, 4096, &len ); + strres = strres + std::string(reinterpret_cast(coldata), std::min(4095,len)); + cerr<<"len="<