#include #include #include #include #include int main(int argc, char** argv) { SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; char buffer[32]; SQLLEN indicator = 0; const char* dsn, * username, * password, * sql; dsn = "myodbctest"; username = "miguel"; password = "MetSol80@#"; sql = "drop table if exists test"; SDWORD retcode; SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); SQLConnect(hdbc, (SQLCHAR*)dsn, SQL_NTS, (SQLCHAR*)username, SQL_NTS, (SQLCHAR*)password, SQL_NTS); SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); SQLExecDirect(hstmt, (SQLCHAR*)sql, SQL_NTS); sql = "Create Table test(bug varchar(255))"; SQLExecDirect(hstmt, (SQLCHAR*)sql, SQL_NTS); sql = "insert into test select 'odbc bug'"; SQLExecDirect(hstmt, (SQLCHAR*)sql, SQL_NTS); sql = "select row_count()"; SQLExecDirect(hstmt, (SQLCHAR*)sql, SQL_NTS); SQLBindCol(hstmt, (SQLUSMALLINT)1, SQL_C_CHAR, (SQLPOINTER)buffer, (SQLLEN)sizeof(buffer), &indicator); SQLFetch(hstmt); printf("select row_count(): %s\n", buffer); SQLFreeHandle(SQL_HANDLE_STMT, hstmt); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); return 0; }