When SQLExecute() returns SQL_NO_DATA, subsequent calls to functions such as SqlNumResultCols() or SQLRowCount() can result in a driver error. For example, this occurs on vertica drivers.

It is useful to know if a result object is valid, meaning the executed SQL did not return SQL_NO_DATA, or the object has only been created and nothing further has been done with it yet.

I have added a safe bool conversion operator (pre-c++11) and an explicit bool conversion operator so that the validity of a result object may be tested in a natural way.

This change set also fixes an issue when NANODBC_ODBC_API_DEBUG. NANODBC_STRINGIZE macros needed to be defined earlier in the file.