linux下 qt5.12使用odbc库
时间: 2023-07-20 08:06:59 浏览: 166
使用ODBC访问数据库
在 Linux 下使用 Qt 5.12 连接 ODBC 数据库,需要安装 unixODBC 和对应的 ODBC 驱动程序。这里以 MySQL ODBC 驱动程序为例:
1. 安装 unixODBC
在终端中输入以下命令安装 unixODBC:
```
sudo apt-get update
sudo apt-get install unixodbc unixodbc-dev
```
2. 下载 MySQL ODBC 驱动程序
从 MySQL 官网下载对应的 ODBC 驱动程序,下载地址为:https://dev.mysql.com/downloads/connector/odbc/。选择对应的系统和位数进行下载。
3. 安装 MySQL ODBC 驱动程序
解压下载的 ODBC 驱动程序,进入解压后的目录,执行以下命令进行安装:
```
sudo su
./configure --prefix=/usr/local --with-unixODBC=/usr
make
make install
```
4. 配置 ODBC 数据源
使用 ODBC 驱动程序连接数据库需要配置 ODBC 数据源。在终端中输入以下命令打开 ODBC 配置工具:
```
sudo odbcinst -j
```
在输出中可以看到 ODBC 配置文件路径,一般为 `/etc/odbcinst.ini` 和 `/etc/odbc.ini`。打开 `odbcinst.ini` 文件,添加以下内容:
```
[MySQL]
Description=MySQL ODBC 8.0 Driver
Driver=/usr/local/lib/libmyodbc8w.so
Setup=/usr/local/lib/libodbcmyS.so
UsageCount=1
```
打开 `odbc.ini` 文件,添加以下内容:
```
[MySQL-test]
Description=MySQL ODBC Test Database
Driver=MySQL
Database=test
Server=localhost
User=root
Password=123456
Port=3306
Option=3
```
其中,`MySQL-test` 是数据源名称,`Driver` 是驱动程序名称,`Database` 是要连接的数据库名称,`Server` 是数据库服务器地址,`User` 和 `Password` 是数据库用户名和密码,`Port` 是数据库端口号,`Option` 是可以选择的连接选项,这里设置为 3。
5. 使用 Qt 连接 ODBC 数据库
在 Qt 项目中,需要在 `.pro` 文件中添加对 ODBC 的支持:
```
QT += sql
QT += core-private
CONFIG += odbc
```
然后在代码中连接 ODBC 数据库:
```cpp
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("MySQL-test");
db.setUserName("root");
db.setPassword("123456");
if (db.open()) {
qDebug() << "Database connected successfully!";
} else {
qDebug() << "Database connection failed!";
}
return a.exec();
}
```
其中,`QSqlDatabase::addDatabase("QODBC")` 表示使用 ODBC 驱动程序连接数据库,`setDatabaseName()` 设置要连接的数据源名称,`setUserName()` 和 `setPassword()` 设置数据库用户名和密码。这里使用 `db.open()` 打开数据库连接,判断是否连接成功。
注意:如果出现连接数据库失败的情况,可以在终端中输入 `isql -v MySQL-test` 命令测试 ODBC 数据源是否配置正确。
阅读全文