// gcc $(pkg-config --cflags odbc) -g -o odbc116559 odbc116559.c $(pkg-config --libs odbc) // create database test; // grant all on test.* to test@localhost identified by 'test'; // use test; // create table test (test integer primary key); #include #include #include int main(int argc, char **argv) { SQLHANDLE hdbc; SQLHANDLE henv; SQLHANDLE hstmt; SQLRETURN rc; rc = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ); assert( rc == SQL_SUCCESS ); rc = SQLSetEnvAttr( henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0 ); assert( rc == SQL_SUCCESS ); rc = SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc ); assert( rc == SQL_SUCCESS ); rc = SQLConnect( hdbc, "test", SQL_NTS, "test", SQL_NTS, "test", SQL_NTS ); assert( rc == SQL_SUCCESS ); rc = SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hstmt ); assert( rc == SQL_SUCCESS ); rc = SQLExecDirect( hstmt, "SET SESSION sql_mode = 'NO_BACKSLASH_ESCAPES'", SQL_NTS ); assert( rc == SQL_SUCCESS ); rc = SQLSpecialColumns( hstmt, SQL_BEST_ROWID, NULL, 0, NULL, SQL_NTS, "test", SQL_NTS, SQL_SCOPE_CURROW, SQL_NO_NULLS ); assert( rc == SQL_SUCCESS ); return 0; }