关于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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用DevC++连接MySQL数据库,首先需要确保已经安装了MySQL数据库,并且了解所需的头文件和库文件。 1. 首先,确保已经下载并安装了MySQL数据库。你可以从官方网站上下载最新的MySQL Community Edition版本。 2. 在DevC++中创建一个新的C++项目。 3. 打开项目的设置(Project Options)。 4. 在Compiler Options选项卡下的"Add these commands when calling the compiler"中添加以下代码来引入所需的头文件: ```cpp -I"path_to_mysql_include_folder" ``` 这里的"path_to_mysql_include_folder"是你安装MySQL时所选择的头文件的路径。 5. 在Linker Options选项卡下的"Add these commands when calling the linker"中添加以下代码来引入所需的库文件: ```cpp -L"path_to_mysql_lib_folder" -lmysql ``` 这里的"path_to_mysql_lib_folder"是你安装MySQL时所选择的库文件的路径。 6. 在代码中包含MySQL的头文件,并在需要连接数据库的地方编写连接代码。下面是一个简单的示例: ```cpp #include <mysql/mysql.h> #include <iostream> int main() { // 创建连接 MYSQL *conn = mysql_init(NULL); // 连接数据库 if (!mysql_real_connect(conn, "hostname", "username", "password", "database", 0, NULL, 0)) { std::cout << "连接数据库失败: " << mysql_error(conn) << std::endl; return 1; } // 连接成功后可以执行数据库操作 // 关闭连接 mysql_close(conn); return 0; } ``` 在上面的代码中,你需要将"hostname"替换为MySQL服务器的主机名或IP地址,"username"和"password"分别替换为登录MySQL所使用的用户名和密码,"database"替换为要连接的数据库的名称。 7. 编译并运行项目,如果一切顺利,你的程序将成功连接到MySQL数据库。 请注意,这只是一个简单的示例,你可以根据自己的需求进行更多的数据库操作。同时,确保在使用MySQL数据库时遵循安全的实践,如防止SQL注入攻击等。<span class="em">1</span> #### 引用[.reference_title] - *1* [dev c++ 连接 mysql 方法、库](https://download.csdn.net/download/downk/18493753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值