コード例 #1
0
SQLRETURN ApplicationDataDescriptor::populateBoundBuffersFromResultSet(QueryResult& resultSet)
{
	bool success = true;

	// iterate over all bound buffers and populate them using data from jsonRows.
	// TODO: Implement support for multi-row buffers
	for (auto it = m_items.begin(); it != m_items.end(); ++it)
	{
		uint16_t columnOrParamNum = it->first;
		
		const Json::Value& jsonRow = *(resultSet.rows()[0]); // use first row
		const Json::Value& jsonValue = jsonRow[columnOrParamNum-1]; // subtract 1 because jsonRow does not contain the bookmark column
		ColumnDescriptor* meta = resultSet.column(columnOrParamNum);

		if (it->second.isBufferBound())
		{
			SQLRETURN result = it->second.toBoundBuffer(&jsonValue, meta);
			success &= result == SQL_SUCCESS;
		}
	}

	return success ? SQL_SUCCESS : SQL_ERROR; 
}