ODBCTest.cxx
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:2k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. #include "TestAssert.h"
  19. #include <cppunit/TestFixture.h>
  20. #ifdef TODO_WIN32
  21. #include <windows.h>
  22. #include <sql.h>
  23. #include <sqltypes.h>
  24. #include <sqlext.h>
  25. #endif
  26. #include "ODBCTest.h"
  27. void ODBCTest::setUp() {
  28. init_ace();
  29. // Perform global set up
  30. TestFixture::setUp();
  31. // Perform set up
  32. }
  33. void ODBCTest::tearDown() {
  34. // Perform clean up
  35. // Perform global clean up
  36. TestFixture::tearDown();
  37. }
  38. #ifdef TODO_WIN32
  39. void ODBCTest::test() {
  40. //Declaration:
  41. SQLHANDLE hdlEnv, hdlConn, hdlStmt, hdlDbc;
  42. char* stmt = "SELECT * from NutHead"; //SQL statement? NutHead is the Table name
  43. //for example
  44. char *dsnName = "COLLECTOR"; //name of your program or what ever�..
  45. char* userID = "eXceed";
  46. char* passwd = "hole";
  47. char* retVal[256];
  48. SQLINTEGER cbData;
  49. SQLRETURN sqlRet = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hdlEnv);
  50. SQLSetEnvAttr(hdlEnv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3, 0);
  51. SQLAllocHandle(SQL_HANDLE_DBC, hdlEnv, &hdlConn);
  52. SQLConnect(hdlConn, (SQLCHAR*) dsnName, SQL_NTS, (SQLCHAR*) userID,
  53. SQL_NTS, (SQLCHAR*) passwd, SQL_NTS);
  54. SQLAllocHandle(SQL_HANDLE_STMT, hdlDbc, &hdlStmt);
  55. SQLExecDirect(hdlStmt, (SQLCHAR*) stmt, SQL_NTS);
  56. //Initialize the database connection
  57. while (SQL_SUCCEEDED(sqlRet = SQLFetch(hdlStmt))) {
  58. SQLGetData(hdlStmt, 0, SQL_C_CHAR, retVal, 256, &cbData);
  59. std::cout << retVal << std::endl;
  60. }
  61. SQLFreeHandle(SQL_HANDLE_STMT, hdlStmt);
  62. SQLFreeHandle(SQL_HANDLE_DBC, hdlConn);
  63. SQLFreeHandle(SQL_HANDLE_ENV, hdlEnv); //End the connection
  64. }
  65. #else
  66. void ODBCTest::test() {
  67. BT_FAIL("NOT IMPLEMENTED");
  68. }
  69. #endif