diff options
Diffstat (limited to 'storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp')
-rw-r--r-- | storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp b/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp new file mode 100644 index 00000000000..8fa4a2b3dbb --- /dev/null +++ b/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp @@ -0,0 +1,167 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + + /** + * @file SQLGetDiagRecSimpleTest.cpp + */ +#include <common.hpp> +#include <string.h> + +using namespace std; + +SQLHDBC GDS_hdbc; +SQLHSTMT GDS_hstmt; +SQLHENV GDS_henv; +SQLHDESC GDS_hdesc; +SQLRETURN GDS_retcode, GDS_RETURN; + +#define GDS_SQL_MAXIMUM_MESSAGE_LENGTH 255 +SQLCHAR GDS_Sqlstate[5]; + +SQLINTEGER GDS_NativeError; +SQLSMALLINT GDS_i = 1, GDS_MsgLen; +SQLCHAR GDS_Msg[GDS_SQL_MAXIMUM_MESSAGE_LENGTH], GDS_ConnectIn[30]; + +/** + * Test SQLGetDiagRec return value + * + * -#Simply test Msg when return is SQL_NO_DATA + * -#Simply test Msg when return is SQL_SUCCESS + * -#Simply test Msg when return is SQL_SUCCESS_WITH_INFO + * -#Simply test Msg when return is SQL_INVALID_HANDLE + * -#Simply test Msg when return is SQL_ERROR + * + * @return Zero, if test succeeded + */ + +int SQLGetDiagRecSimpleTest() +{ + ndbout << endl << "Start SQLGetDiagRec Simple Testing" << endl; + + //************************************ + //** Allocate An Environment Handle ** + //************************************ + + GDS_retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &GDS_henv); + if (GDS_retcode == SQL_SUCCESS || GDS_retcode == SQL_SUCCESS_WITH_INFO) + ndbout << "Allocated An Environment Handle!" << endl; + + //********************************************* + //** Set the ODBC application Version to 3.x ** + //********************************************* + + GDS_retcode = SQLSetEnvAttr(GDS_henv, + SQL_ATTR_ODBC_VERSION, + (SQLPOINTER) SQL_OV_ODBC3, + SQL_IS_UINTEGER); + + if (GDS_retcode == SQL_SUCCESS || GDS_retcode == SQL_SUCCESS_WITH_INFO) + ndbout << "Set the ODBC application Version to 3.x!" << endl; + + //********************************** + //** Allocate A Connection Handle ** + //********************************** + + GDS_retcode = SQLAllocHandle(SQL_HANDLE_DBC, GDS_henv, &GDS_hdbc); + + if (GDS_retcode == SQL_SUCCESS || GDS_retcode == SQL_SUCCESS_WITH_INFO) + ndbout << "Allocated A Connection Handle!" << endl; + + // ******************* + // ** Connect to DB ** + // ******************* + + GDS_retcode = SQLConnect(GDS_hdbc, + (SQLCHAR *) connectString(), + SQL_NTS, + (SQLCHAR *) "", + SQL_NTS, + (SQLCHAR *) "", + SQL_NTS); + + if (GDS_retcode == SQL_SUCCESS || GDS_retcode == SQL_SUCCESS_WITH_INFO){ + ndbout << "Success connection to DB!" << endl; + ndbout << "GDS_retcode = " << GDS_retcode << endl; + ndbout << "SQL_SUCCESS = " << SQL_SUCCESS << endl; + ndbout << "SQL_SUCCESS_WITH_INFO = " << SQL_SUCCESS_WITH_INFO << endl;} + + ndbout << endl; + + ndbout << "-------------------------------------------------" << endl; + ndbout << "Error diagnostics:" << endl; + + if (GDS_retcode != SQL_SUCCESS || GDS_retcode != SQL_SUCCESS_WITH_INFO){ + ndbout << "GDS_retcode = " << GDS_retcode << endl; + ndbout << "SQL_SUCCESS = " << SQL_SUCCESS << endl; + ndbout << "SQL_SUCCESS_WITH_INFO = " << SQL_SUCCESS_WITH_INFO << endl; + + GDS_RETURN = SQLGetDiagRec(SQL_HANDLE_DBC, + GDS_hdbc, + GDS_i, + GDS_Sqlstate, + &GDS_NativeError, + GDS_Msg, + sizeof(GDS_Msg), + &GDS_MsgLen); + + if (GDS_RETURN == SQL_NO_DATA){ + ndbout << "GDS_SQLSTATES = SQL_NO_DATA" << endl; + ndbout << "the HandleType is:" << SQL_HANDLE_DBC << endl; + ndbout << "the Handle is :" << (long)GDS_hdbc << endl; + ndbout << "the GDS_Msg is :" << (char *)GDS_Msg << endl; + ndbout << "the sqlstate is:" << (char *)GDS_Sqlstate << endl;} + + else if (GDS_RETURN == SQL_SUCCESS){ + ndbout << "GDS_SQLSTATES = SQL_SUCCESS" << endl; + ndbout << "the HandleType is:" << SQL_HANDLE_DBC << endl; + ndbout << "the Handle is :" << (long)GDS_hdbc << endl; + ndbout << "the GDS_Msg is :" << (char *)GDS_Msg << endl; + ndbout << "the sqlstate is:" << (char *)GDS_Sqlstate << endl;} + + else if (GDS_RETURN == SQL_SUCCESS_WITH_INFO){ + ndbout << "GDS_SQLSTATES = SQL_SUCCESS_WITH_INFO" << endl; + ndbout << "the HandleType is:" << SQL_HANDLE_DBC << endl; + ndbout << "the Handle is :" << (long)GDS_hdbc << endl; + ndbout << "the GDS_Msg is :" << (char *)GDS_Msg << endl; + ndbout << "the sqlstate is:" << (char *)GDS_Sqlstate << endl;} + + else if (GDS_RETURN == SQL_INVALID_HANDLE){ + ndbout << "GDS_SQLSTATES = SQL_INVALID_HANDLE" << endl; + ndbout << "the HandleType is:" << SQL_HANDLE_DBC << endl; + ndbout << "the Handle is :" << (long)GDS_hdbc << endl; + ndbout << "the GDS_Msg is :" << (char *)GDS_Msg << endl; + ndbout << "the sqlstate is:" << (char *)GDS_Sqlstate << endl;} + + else{ + ndbout << "GDS_RETURN = SQL_ERROR" << endl; + ndbout << "the HandleType is:" << SQL_HANDLE_DBC << endl; + ndbout << "the Handle is :" << (long)GDS_hdbc << endl; + ndbout << "the GDS_Msg is :" << (char *)GDS_Msg << endl; + ndbout << "the sqlstate is:" << (char *)GDS_Sqlstate << endl; + } + } + ndbout << "-------------------------------------------------" << endl; + + //****************** + //** Free Handles ** + //****************** + SQLDisconnect(GDS_hdbc); + SQLFreeHandle(SQL_HANDLE_STMT, GDS_hstmt); + SQLFreeHandle(SQL_HANDLE_DBC, GDS_hdbc); + SQLFreeHandle(SQL_HANDLE_ENV, GDS_henv); + return NDBT_OK; + } + |