NDBT_SQLConnect.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include "common.h"
  14. #include <NdbTest.hpp>
  15. #include <NdbMain.h>
  16. SQLRETURN retcode, SQLSTATEs;
  17. SQLHENV     henv;
  18. SQLHDBC     hdbc;
  19. void NDBT_Connect_DisplayError(SQLSMALLINT HandleType, SQLHSTMT InputHandle);
  20. int NDBT_SQLConnect()
  21. {
  22.       /*****************************SQLConnect AutoTest*****************************/
  23.      // Allocate An Environment Handle
  24.         SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  25.      // This part does not include in sqlcli.h, it is only in ODBC
  26.      // Set the ODBC application Version to 3.x
  27.      // SQLSetEnvattr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_UINTERGER);
  28.      // Allocate A Connection Handle
  29.         SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  30.      // Connect to NDB
  31.         retcode = SQLConnect(hdbc, 
  32.      (SQLCHAR*) "Sales", 
  33.      5, 
  34.      (SQLCHAR*) "JohnS", 
  35.      5, 
  36.      (SQLCHAR*) "Sesame", 
  37.      6);
  38.         if (retcode == SQL_INVALID_HANDLE)
  39.             ndbout << "Handle Type is SQL_HANDLE_DBC, but string SQL_INVALID_HANDLE still appeared. Please check programm" << endl;
  40.         else 
  41.             { if (retcode == SQL_ERROR || retcode == SQL_SUCCESS_WITH_INFO)
  42.               NDBT_Connect_DisplayError(SQL_HANDLE_DBC, hdbc);}
  43.      // Free the Connection Handle
  44.         SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
  45.      // Free the Environment Handle
  46.         SQLFreeHandle(SQL_HANDLE_ENV, henv);
  47. return 0;
  48. }
  49. void NDBT_Connect_DisplayError(SQLSMALLINT HandleType, SQLHDBC InputHandle)
  50. {
  51.      SQLRETURN  Sqlstate;
  52.      int i = 1;
  53.      while ((SQLSTATEs = SQLGetDiagRec(HandleType, InputHandle, i, 
  54.              Sqlstate, &NativeError, Msg, sizeof(Msg), 
  55.              &MsgLen)) != SQL_NO_DATA)                   {
  56.      ndbout << "the HandleType is:" << HandleType << endl;
  57.      ndbout << "the InputHandle is :" << InputHandle << endl;
  58.      ndbout << "the output state is:" << (char *)Sqlstate << endl; 
  59.      i ++;
  60.                                                          }
  61. }