ZBLOG

qt链接mysql,使用odbc的代码

以下是一个使用ODBC链接MySQL数据库的示例代码:

#include <iostream>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>

int main() {
    SQLHENV henv; // ODBC环境句柄
    SQLHDBC hdbc; // 数据库连接句柄
    SQLRETURN retcode;

    // 初始化ODBC环境
    retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);

    // 分配数据库连接句柄
    retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

    // 配置数据库连接信息
    const char* connectionStr = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;DATABASE=mydatabase;USER=user;PASSWORD=password;";
    
	// 连接到数据库
	retcode = SQLDriverConnect(hdbc, NULL,
        (SQLCHAR*)connectionStr, SQL_NTS,
        NULL, 0, NULL,
        SQL_DRIVER_COMPLETE);

	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
		std::cout << "连接成功!" << std::endl;
        
        // 执行SQL查询等操作...
		
		// 关闭数据库连接
		retcode = SQLDisconnect(hdbc);
	} else {
	    std::cout << "连接失败!" << std::endl;
	    
	    // 输出错误信息
	    if (retcode != SQL_SUCCESS_WITH_INFO) {
            char sqlState[6], errMsg[1024];
            SDWORD nativeError;
            SWORD actualLen;
            retcode = SQLGetDiagRec(SQL_HANDLE_DBC, hdbc, 1,
                (SQLCHAR*)sqlState, &nativeError,
                (SQLCHAR*)errMsg, sizeof(errMsg), &actualLen);
            std::cout << "错误:" << errMsg << std::endl;
        }
	}

    // 释放数据库连接句柄
    SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

    // 释放ODBC环境句柄
    SQLFreeHandle(SQL_HANDLE_ENV, henv);

    return 0;
}

请确保已安装合适的MySQL ODBC驱动程序,并根据自己的数据库连接信息进行相应配置。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10505

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?