diff options
Diffstat (limited to 'ndb/test/odbc/client/SQLBindColTest.cpp')
-rw-r--r-- | ndb/test/odbc/client/SQLBindColTest.cpp | 537 |
1 files changed, 0 insertions, 537 deletions
diff --git a/ndb/test/odbc/client/SQLBindColTest.cpp b/ndb/test/odbc/client/SQLBindColTest.cpp deleted file mode 100644 index e2cd4ce73d1..00000000000 --- a/ndb/test/odbc/client/SQLBindColTest.cpp +++ /dev/null @@ -1,537 +0,0 @@ -/* 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 SQLBindColTest.cpp - */ -#include <common.hpp> -using namespace std; - -#define BindCol_NAME_LEN 10 -#define BindCol_PHONE_LEN 10 -#define BindCol_ADDRESS_LEN 10 -#define BindCol_Price_LEN 10 -#define BindCol_Weight_LEN 10 -#define BindCol_Tax_LEN 10 - -#define BindCol_SQL_MAXIMUM_MESSAGE_LENGTH 200 - -//SQLHDBC BindCol_hdbc; -//SQLHSTMT BindCol_hstmt; -//SQLHENV BindCol_henv; -//SQLHDESC BindCol_hdesc; -//SQLRETURN BCret; - -//SQLCHAR BindCol_Name[BindCol_NAME_LEN], BindCol_Phone[BindCol_PHONE_LEN]; -//SQLCHAR BindCol_Address[BindCol_ADDRESS_LEN]; -//SQLINTEGER NativeError; -//unsigned long BindCol_CustID; - -void BindCol_DisplayError(SQLSMALLINT BindCol_HandleType, - SQLHSTMT BindCol_InputHandle); - -/** - * Test setting column to bind - * for a column in a result - * - * -# Bind columns 1 - * -# Bind columns 2 - * -# Bind columns 3 - * -# Bind columns 4 - * -# Bind columns 5 - * -# Bind columns 6 - * -# Bind columns 7 - * @return Zero, if test succeeded - */ - -int SQLBindColTest() -{ - - SQLHDBC BindCol_hdbc; - SQLHSTMT BindCol_hstmt; - SQLHENV BindCol_henv; - SQLHDESC BindCol_hdesc; - - SQLCHAR SQLStmt1 [240]; - SQLCHAR SQLStmt2 [240]; - SQLCHAR SQLStmt3 [120]; - - SQLRETURN BCret; - - unsigned long BindCol_CustID; - SQLCHAR BindCol_Name[BindCol_NAME_LEN]; - short BindCol_Account; - unsigned short BindCol_Phone; - long BindCol_Price; - float BindCol_Weight; - double BindCol_Tax; - - ndbout << endl << "Start SQLBindCol Testing" << endl; - - //******************************************************************* - //** hstmt - //** Execute a statement to retrieve rows from the Customers table ** - //** We can create the table and insert rows into Customers ** - //******************************************************************* - - //************************************ - //** Allocate An Environment Handle ** - //************************************ - BCret = SQLAllocHandle(SQL_HANDLE_ENV, - SQL_NULL_HANDLE, - &BindCol_henv); - -if (BCret == SQL_SUCCESS || BCret == SQL_SUCCESS_WITH_INFO) - ndbout << "Allocated an environment Handle!" << endl; - - //********************************************* - //** Set the ODBC application Version to 3.x ** - //********************************************* - BCret = SQLSetEnvAttr(BindCol_henv, - SQL_ATTR_ODBC_VERSION, - (SQLPOINTER) SQL_OV_ODBC3, - SQL_IS_UINTEGER); - -if (BCret == SQL_SUCCESS || BCret == SQL_SUCCESS_WITH_INFO) - ndbout << "Set the ODBC application Version to 3.x!" << endl; - -//********************************** -//** Allocate A Connection Handle ** -//********************************** - - BCret = SQLAllocHandle(SQL_HANDLE_DBC, - BindCol_henv, - &BindCol_hdbc); - - if (BCret == SQL_SUCCESS || BCret == SQL_SUCCESS_WITH_INFO) - ndbout << "Allocated a connection Handle!" << endl; - - // ******************* - // ** Connect to DB ** - // ******************* - BCret = SQLConnect(BindCol_hdbc, - (SQLCHAR *) connectString(), - SQL_NTS, - (SQLCHAR *) "", - SQL_NTS, - (SQLCHAR *) "", - SQL_NTS); - - if (BCret == SQL_SUCCESS || BCret == SQL_SUCCESS_WITH_INFO) - ndbout << "Connected to DB : OK!" << endl; - else - { - ndbout << "Failure to Connect DB!" << endl; - return NDBT_FAILED; - } - - //******************************* - //** Allocate statement handle ** - //******************************* - - BCret = SQLAllocHandle(SQL_HANDLE_STMT, - BindCol_hdbc, - &BindCol_hstmt); - if(BCret == SQL_SUCCESS || BCret == SQL_SUCCESS_WITH_INFO) - ndbout << "Allocated a statement handle!" << endl; - - //************************ - //** Define a statement ** - //************************ - - /* Primary key is Integer and Char */ - strcpy((char *) SQLStmt1, "CREATE TABLE Customer1(CustID Integer, Name Char(12), Account Char(12), Phone Char(12), Price Char(6), Weight Char(6), Tax Char(6), Primary Key(CustID, Name))"); - - strcpy((char *) SQLStmt2, "INSERT INTO Customer1 (CustID, Name, Account, Phone, Price, Weight, Tax) VALUES(588, 'peter','6808','7190890', '5.68', '1.58', '0.88')"); - - strcpy((char *) SQLStmt3, "SELECT * FROM Customer1"); - - //************************************************ - //** Prepare and Execute CREATE TABLE statement ** - //************************************************ - ndbout << endl << "Prepare and Execute CREATE TABLE statement ......" << endl; - ndbout << ">>>>" << (char*)SQLStmt1 << "<<<<" << endl; - BCret = SQLExecDirect(BindCol_hstmt, - SQLStmt1, - SQL_NTS); - if (BCret == SQL_SUCCESS) - ndbout << "Prepare and Execute CREATE TABLE statement OK!" - << endl<< endl; - - if (BCret == SQL_ERROR || BCret == SQL_SUCCESS_WITH_INFO) - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - - if (BCret == -2) - { - ndbout << "BCret = SQLExexDirect()=" << BCret << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - - //******************************************************* - //** Prepare and Execute INSERT statement with prepare ** - //******************************************************* - ndbout << "Prepare and Execute INSERT statement ......" << endl; - ndbout << ">>>>" << (char*)SQLStmt2 << "<<<<" << endl; - BCret = SQLExecDirect(BindCol_hstmt, - SQLStmt2, - SQL_NTS); - - if (BCret == SQL_SUCCESS) - ndbout << "Prepare and Execute INSERT statement OK!" - << endl << endl; - - if (BCret == SQL_ERROR || BCret == SQL_SUCCESS_WITH_INFO) - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - - if (BCret == -2) - { - ndbout << "BCret = SQLExexDirect()=" << BCret << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - - //****************************************** - //** Prepare and EXECUTE SELECT statement ** - //****************************************** - ndbout << "Prepare and Execute SELECT statement ......" << endl; - ndbout << ">>>>" << (char*)SQLStmt3 << "<<<<" << endl; - BCret = SQLExecDirect(BindCol_hstmt, - SQLStmt3, - SQL_NTS); - - if (BCret == SQL_SUCCESS) - ndbout << "Prepare and Execute SELECT statement OK!" - << endl << endl; - - if (BCret == SQL_ERROR || BCret == SQL_SUCCESS_WITH_INFO) - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - - if (BCret == -2) - { - ndbout << "BCret = SQLExexDirect()=" << BCret << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - - //******************************* - //** Execute SELECT statement ** - //******************************* - // BCret = SQLExecute(BindCol_hstmt); - // if (BCret == SQL_ERROR || BCret == SQL_SUCCESS_WITH_INFO) - // { - // ndbout << "BCret = " << BCret << endl; - // BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - // } - // else - // { - - if (BCret == SQL_SUCCESS) - ndbout << "Execute INSERT statement OK!" << endl; - - //********************* - //** Test1 ** - //** Bind columns 1 ** - //********************* - - BCret =SQLBindCol(BindCol_hstmt, - 1, - SQL_C_ULONG, - &BindCol_CustID, - sizeof(BindCol_CustID), - NULL); - - if (BCret == SQL_SUCCESS) - { - ndbout << endl << "Bind col 1 OK!" << endl; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 1 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 1 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else - ndbout << endl; - - //********************* - //** Test2 ** - //** Bind columns 2 ** - //********************* - - BCret =SQLBindCol(BindCol_hstmt, - 2, - SQL_C_CHAR, - &BindCol_Name, - BindCol_NAME_LEN, - NULL); - - if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 2 OK!" << endl; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 2 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 2 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else - ndbout << endl; - - //********************* - //** Test3 ** - //** Bind columns 3 ** - //********************* - - BCret = SQLBindCol(BindCol_hstmt, - 3, - SQL_C_USHORT, - &BindCol_Account, - sizeof(BindCol_Account), - NULL); - - if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 3 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 3 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 3 OK!" << endl; - } - else - ndbout << endl; - - //********************* - //** Test4 ** - //** Bind columns 4 ** - //********************* - - BCret = SQLBindCol(BindCol_hstmt, - 4, - SQL_C_USHORT, - &BindCol_Phone, - sizeof(BindCol_Phone), - NULL); - - if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 4 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 4 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 4 OK!" << endl; - } - else - ndbout << endl; - - //********************* - //** Test5 ** - //** Bind columns 5 ** - //********************* - - BCret = SQLBindCol(BindCol_hstmt, - 5, - SQL_C_SLONG, - &BindCol_Price, - sizeof(BindCol_Price), - NULL); - - if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 5 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 5 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 5 OK!" << endl; - } - else - ndbout << endl; - - //********************* - //** Test6 ** - //** Bind columns 6 ** - //********************* - - BCret = SQLBindCol(BindCol_hstmt, - 6, - SQL_C_FLOAT, - &BindCol_Weight, - sizeof(BindCol_Weight), - NULL); - - if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 6 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 6 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 6 OK!" << endl; - } - else - ndbout << endl; - - //********************* - //** Test7 ** - //** Bind columns 7 ** - //********************* - - BCret = SQLBindCol(BindCol_hstmt, - 7, - SQL_C_DOUBLE, - &BindCol_Tax, - sizeof(BindCol_Tax), - NULL); - - if (BCret == SQL_ERROR) - { - ndbout << "Bind Col 7 Failed!" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; - } - else if (BCret == SQL_SUCCESS_WITH_INFO) - { - ndbout << "Bind Col 7 OK but with INFO" << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - } - else if (BCret == SQL_SUCCESS) - { - ndbout << "Bind col 7 OK!" << endl; - } - else - ndbout << endl; - - //} - -//***************************************** -//* Fetch and print each row of data. On ** -//* an error, display a message and exit ** -//***************************************** - -BCret = SQLFetch(BindCol_hstmt); - - ndbout << endl << "BCret = SQLFetch(BindCol_hstmt) = " - << BCret << endl; - -if (BCret == SQL_ERROR) -{ - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); - return NDBT_FAILED; -} -else if (BCret == SQL_SUCCESS_WITH_INFO) -{ - ndbout << "CustID = " << (int)BindCol_CustID << endl; - ndbout << "Name = " << (char *)BindCol_Name << endl; - ndbout << "Account = " << (int)BindCol_Account << endl; - ndbout << "Phone = " << (int)BindCol_Phone << endl; - ndbout << "Price = " << (int)BindCol_Price << endl; - ndbout << "Weight = " << (int)BindCol_Weight << endl; - ndbout << "Tax = " << (int)BindCol_Tax << endl; - BindCol_DisplayError(SQL_HANDLE_STMT, BindCol_hstmt); -} -else -{ - ndbout << "CustID = " << (int)BindCol_CustID << endl; - ndbout << "Name = " << (char *)BindCol_Name << endl; - ndbout << "Account = " << (int)BindCol_Account << endl; - ndbout << "Phone = " << (int)BindCol_Phone << endl; - ndbout << "Price = " << (int)BindCol_Price << endl; - ndbout << "Weight = " << (int)BindCol_Weight << endl; - ndbout << "Tax = " << (int)BindCol_Tax << endl; -} - -// ********************************* -// ** Disconnect and Free Handles ** -// ********************************* -SQLDisconnect(BindCol_hdbc); -SQLFreeHandle(SQL_HANDLE_STMT, BindCol_hstmt); -SQLFreeHandle(SQL_HANDLE_DBC, BindCol_hdbc); -SQLFreeHandle(SQL_HANDLE_ENV, BindCol_henv); - -return NDBT_OK; - -} - -void BindCol_DisplayError(SQLSMALLINT BindCol_HandleType, - SQLHSTMT BindCol_InputHandle) -{ - SQLSMALLINT BindCol_i = 1; - SQLRETURN BindCol__SQLSTATEs; - SQLCHAR BindCol_Sqlstate[5]; - SQLCHAR BindCol_Msg[BindCol_SQL_MAXIMUM_MESSAGE_LENGTH]; - SQLSMALLINT BindCol_MsgLen; - SQLINTEGER NativeError; - - ndbout << "-------------------------------------------------" << endl; - ndbout << "Error diagnostics:" << endl; - - while ((BindCol__SQLSTATEs = SQLGetDiagRec(BindCol_HandleType, - BindCol_InputHandle, - BindCol_i, - BindCol_Sqlstate, - &NativeError, - BindCol_Msg, - sizeof(BindCol_Msg), - &BindCol_MsgLen) - ) != SQL_NO_DATA) - { - - ndbout << "the HandleType is:" << BindCol_HandleType << endl; - ndbout << "the InputHandle is :" << (long)BindCol_InputHandle << endl; - ndbout << "the BindCol_Msg is: " << (char *) BindCol_Msg << endl; - ndbout << "the output state is:" << (char *)BindCol_Sqlstate << endl; - - BindCol_i ++; - break; - } - ndbout << "-------------------------------------------------" << endl; -} - |