Index: driver/error.c =================================================================== --- driver/error.c (revision 522) +++ driver/error.c (working copy) @@ -488,13 +488,6 @@ if ( RecNumber > 1 ) MYODBCDbgReturnReturn( SQL_NO_DATA_FOUND ); - /* - If record number is 0 and if it is not a - diag header field request, return error - */ - if ( RecNumber == 0 && DiagIdentifier > 0 ) - MYODBCDbgReturnReturn( SQL_ERROR ); - switch ( DiagIdentifier ) { Index: test/my_error.c =================================================================== --- test/my_error.c (revision 522) +++ test/my_error.c (working copy) @@ -269,6 +269,24 @@ } +DECLARE_TEST(t_bug16224) +{ + SQLHENV env; + SQLHDBC dbc; + SQLHSTMT stmt; + SQLINTEGER diagcnt; + + alloc_basic_handles(&env, &dbc, &stmt); + SQLExecDirect(stmt, "This is an invalid Query! (odbc test)", SQL_NTS); + + ok_stmt(stmt, SQLGetDiagField(SQL_HANDLE_STMT, stmt, 0, + SQL_DIAG_NUMBER, &diagcnt, SQL_IS_INTEGER, NULL)); + is_num(diagcnt, 1); + + return OK; +} + + BEGIN_TESTS #ifndef NO_DRIVERMANAGER ADD_TEST(t_odbc2_error) @@ -279,6 +297,7 @@ ADD_TEST(t_diagrec) ADD_TEST(t_warning) ADD_TODO(t_bug3456) + ADD_TEST(t_bug16224) END_TESTS RUN_TESTS