关于MySQL Connector/C++那点事儿

如果从官方直接下载的库使用时遇到类似如下的问题:

原因是官方提供的库文件版本与需要的库版本不匹配,提供的debug版本使用的是MT版本,在debug模式下会出现内存错误,导致crash。

TestC.exe中的...dll有未经处理的异常:读取位置时发生访问冲突。

那么可能需要自己手动编译源码(参考编译MySQL Connector/C++的资料)啦:

重新设置包含目录和库目录(实际中请把想要的头文件和库文件最好放到自己的工程目录里的第三方库或头文件如Libs之类的目录下,保证工程的可一致性,而不是像这里这样F:\Tools\....这样):

 

重新编译运行:

 

 

#include <stdlib.h>
#include <iostream>

#include <driver/mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>	

using namespace std;

int main(void)
{
    cout << "Running 'SELECT 'Hello World!' AS _message'..." << endl;

    try
	{
		sql::Driver *driver;
		sql::Connection *con;
		sql::Statement *stmt;
		sql::ResultSet *res;

		/* 连接mysql服务器 */
		driver = get_driver_instance();
		con = driver->connect("tcp://127.0.0.1:3307", "root", "*****");
		con->setSchema("test");

		stmt = con->createStatement();
		res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
		while (res->next()) {
			//通过列别名访问
			cout << res->getString("_message") << endl;
			//通过列偏移
			cout << res->getString(1) << endl;
		}

		delete res;
		delete stmt;
		delete con;
    }
	catch (sql::SQLException &e) 
	{
		cout << "# ERR: SQLException in " << __FILE__;
		cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
		cout << "# ERR: " << e.what();
		cout << " (MySQL error code: " << e.getErrorCode();
		cout << ", SQLState: " << e.getSQLState() << " )" << endl;
    }
	cin.get();
    return EXIT_SUCCESS;
}

  

 MySQL Connector/C++文档:

http://dev.mysql.com/doc/refman/5.6/en/connector-cpp.html

转载于:https://www.cnblogs.com/xcf007/p/3451002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QT MySQL Connector/C++ 是一个用于在 Qt 应用程序中连接和操作 MySQL 数据库C++ 接口。它是基于 MySQL Connector/C++ 开发的,提供了方便的 API 和功能,使开发人员能够轻松地与 MySQL 数据库进行交互。 使用 QT MySQL Connector/C++,您可以执行各种数据库操作,如连接到数据库,执行查询和更新操作,处理事务等。它还提供了对预处理语句的支持,使您可以安全地执行参数化查询,以防止 SQL 注入攻击。 要在您的 Qt 项目中使用 QT MySQL Connector/C++,您需要下载和安装 MySQL Connector/C++ 库,并在 Qt 项目中包含相应的头文件和链接库。然后,您可以使用提供的类和方法来创建数据库连接对象,执行查询和操作数据。 以下是一个简单的示例代码,演示如何使用 QT MySQL Connector/C++ 连接到 MySQL 数据库并执行查询操作: ```cpp #include <QtSql> #include <QDebug> int main() { // 创建数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("your_database_name"); db.setUserName("your_username"); db.setPassword("your_password"); // 打开数据库连接 if (db.open()) { qDebug() << "Database connected."; // 执行查询操作 QSqlQuery query; query.exec("SELECT * FROM your_table_name"); // 遍历结果集 while (query.next()) { QString value = query.value(0).toString(); // 获取第一列的值 qDebug() << "Value:" << value; } // 关闭数据库连接 db.close(); } else { qDebug() << "Database connection failed."; } return 0; } ``` 请注意,上述代码仅演示了连接到数据库和执行查询操作的基本步骤。根据您的实际需求,您可以使用更多的方法和类来执行其他类型的数据库操作。 希望这能帮助您开始使用 QT MySQL Connector/C++ 连接和操作 MySQL 数据库。如有任何进一步的问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值