關於C++連接數據庫的問題

 

Code:
  1. #include "stdafx.h"  
  2.   
  3. #include <afx.h>//書上沒有  
  4. #include <odbcinst.h>//書上沒有  
  5. #include <sqlext.h>  
  6. #include "iostream.h"  
  7. #pragma comment( lib, "odbc32.lib" )  
  8.   
  9. int main()  
  10. {  
  11.     SQLHENV henv;  
  12.     SQLHDBC hdbc;  
  13.     SQLHSTMT hstmt;  
  14.   
  15.     SQLCHAR * OutConnStr = (SQLCHAR * )malloc(255);  
  16.     SQLSMALLINT * OutConnStrLen = (SQLSMALLINT *)malloc(255);  
  17.   
  18.     //環境句柄  
  19.     SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);  
  20.   
  21.     SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);   
  22.   
  23.     SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);   
  24.   
  25.     //連接數據源  
  26.     SQLConnect(hdbc, (SQLCHAR*) "test", SQL_NTS, (SQLCHAR*) NULL, 0, NULL, 0);  
  27.   
  28.     SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);   
  29.   
  30.     SQLExecDirect(hstmt, (SQLCHAR*) "select top(word) from DicEn", SQL_NTS);  
  31.   
  32.     //依次讀取每行  
  33.     while (SQLFetch(hstmt) != SQL_NO_DATA)  
  34.     {  
  35.     //  SQLCHAR     name[255] = {0}, gender[255] = {0}, words[255] = {0};  
  36.     //  SQLINTEGER  id, age;  
  37.     SQLINTEGER  cb;  
  38.     SQLCHAR     words[255] = {0};  
  39.         //讀取每列  
  40.         SQLGetData(hstmt, 1, SQL_C_CHAR, words, 255, &cb);  
  41.         //SQLGetData(hstmt, 1, SQL_C_ULONG, words, 0, &cb);  
  42.         //SQLGetData(hstmt, 2, SQL_C_CHAR, name, 255, &cb);  
  43.         //SQLGetData(hstmt, 3, SQL_C_ULONG, &age, 0, &cb);  
  44.         //SQLGetData(hstmt, 4, SQL_C_CHAR, gender, 255, &cb);  
  45.         //SQLGetData(hstmt, 5, SQL_C_CHAR, words, 255, &cb);  
  46.   
  47.         //輸出  
  48.         //printf("%d/t%s/t%d/t%s/t%s/r/n", id, name, age, gender, words);  
  49.         cout<<words<<endl;  
  50.     }  
  51.   
  52.     //釋放資源  
  53.     SQLFreeHandle(SQL_HANDLE_STMT, hstmt);  
  54.     SQLDisconnect(hdbc);  
  55.     SQLFreeHandle(SQL_HANDLE_DBC, hdbc);  
  56.     SQLFreeHandle(SQL_HANDLE_ENV, henv);  
  57.   
  58.     return 0;  
  59. }  

問題先掛着.明天去圖書館翻書.

實際上並沒有讀取數據.數據源是test數據庫是sql2000.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章