because if I don't do that and there are multiple callproc() calls, odbc would complain "invalid cursor state" on the second time I call callproc()... (the commented out free_results() will call SQLFreeStmt() once by the way, and it is in execute(). I just want to show you I have to make a second call to SQLFreeStmt() here...)