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

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. #define SQL_MAXIMUM_MESSAGE_LENGTH 200
  15. using namespace std;
  16. SQLHDBC     hdbc;
  17. SQLHENV     henv;
  18. SQLRETURN   retcode, SQLSTATEs;
  19. SQLCHAR Msg[SQL_MAXIMUM_MESSAGE_LENGTH];
  20. SQLCHAR Sqlstate[5];
  21. SQLINTEGER    NativeError;
  22. SQLSMALLINT   i, MsgLen;
  23. void sqlallocenv_deal_with_HENV(SQLSMALLINT HandleType, SQLHENV InputHandle);
  24. void sqlallocenv_deal_with_HDBC(SQLSMALLINT HandleType, SQLHDBC InputHandle);
  25. void DisplayError_HDBC_free(SQLCHAR Sqlstate[6], SQLSMALLINT HandleType, SQLHDBC InputHandle);
  26. void DisplayError_HENV_free(SQLCHAR Sqlstate[6], SQLSMALLINT HandleType, SQLHENV InputHandle);
  27. int SQLAllocEnvTest()
  28. {
  29. /* Environment test for SQLAllocEnv() */
  30. ndbout << "Environment test for SQLAllocEnv()" << endl;
  31. //SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  32. sqlallocenv_deal_with_HENV(SQL_HANDLE_ENV, henv);
  33.         
  34. //SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  35. //SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  36. sqlallocenv_deal_with_HDBC(SQL_HANDLE_DBC, hdbc);
  37.          
  38. return 0;
  39. }        
  40. void sqlallocenv_deal_with_HDBC(SQLSMALLINT HandleType, SQLHDBC InputHandle) 
  41. {
  42.      SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  43.      retcode = SQLAllocHandle(HandleType, henv, &InputHandle);
  44.      ndbout << "the HandleType is : " << HandleType << endl;
  45.      ndbout << "the InputHandle is SQLHDBC:" << InputHandle << endl;
  46.      ndbout << "retcode = " << retcode << endl;
  47.      /* ***
  48.      if (retcode == SQL_ERROR || retcode == SQL_SUCCESS_WITH_INFO) {
  49.      i = 1;
  50.      while ((SQLSTATEs = SQLGetDiagRec(HandleType, InputHandle, i, 
  51.              Sqlstate, &NativeError, Msg, sizeof(Msg), 
  52.              &MsgLen)) != SQL_NO_DATA)                   {
  53.      DisplayError_HDBC_free(Sqlstate, HandleType, InputHandle);
  54.      i ++;
  55.                                                          }
  56.                                                                    }
  57.      *** */
  58. }
  59. void sqlallocenv_deal_with_HENV(SQLSMALLINT HandleType, SQLHENV InputHandle) 
  60. {
  61.      retcode = SQLAllocEnv(&InputHandle);
  62.      ndbout << "the HandleType is : " << HandleType << endl;
  63.      ndbout << "the InputHandle is SQLHENV:" << InputHandle << endl;
  64.      ndbout << "retcode = " << retcode << endl;
  65.      /*
  66.      if (retcode == SQL_ERROR || retcode == SQL_SUCCESS_WITH_INFO) {
  67.      i = 1;
  68.      while ((SQLSTATEs = SQLGetDiagRec(HandleType, InputHandle, i, 
  69.              Sqlstate, &NativeError, Msg, sizeof(Msg), 
  70.              &MsgLen)) != SQL_NO_DATA)                   {
  71.      DisplayError_HENV_free(Sqlstate, HandleType, InputHandle);
  72.      i ++;
  73.                                                          }
  74.                                                                    }
  75.      */
  76.  }
  77. void DisplayError_HENV_free(SQLCHAR Sqlstate[6], SQLSMALLINT HandleType, SQLHENV InputHandle)
  78. {
  79.      ndbout << "the HandleType is:" << HandleType << endl;
  80.      ndbout << "the InputHandle is :" << InputHandle << endl;
  81.      ndbout << "the output state is:" << (char *)Sqlstate << endl;  
  82. }
  83. void DisplayError_HDBC_free(SQLCHAR Sqlstate[6], SQLSMALLINT HandleType, SQLHDBC InputHandle)
  84. {
  85.      ndbout << "the HandleType is:" << HandleType << endl;
  86.      ndbout << "the InputHandle is :" << InputHandle << endl;
  87.      ndbout << "the output state is:" << (char *)Sqlstate << endl;
  88. }