Mac 上的 Qt MySQL

2024-01-06

我浪费了大约 6 个小时试图按照网上的各种说明让 MySQL 与 Qt 一起工作。我现在就想把自己的手腕砍掉!

有谁对如何将 QMYSQL 驱动程序安装到 Qt 中有简单和详细的解释吗?

我有 Mac 10.6,我是初学者。

我将衷心感谢您的帮助!

Sana.

EDIT:

当我执行 grep 时,我得到以下文件,因此在这些文件中,我将 libqsqlmysql.dylib 复制到所有文件夹中,但仍然无法编译...我收到一条错误消息QSqlDatabase: QMYSQL driver not loaded

/Library/Application Support/DivX/QtPlugins/sqldrivers/libqsqlite.dylib 
/Users/pfn368/QtSDK/Assistant.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Designer.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/4.8.0/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/4.8.0/gcc/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Desktop/Qt/474/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Desktop/Qt/474/gcc/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Madde/sysroots/harmattan-arm-sysroot/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Madde/sysroots/harmattan-nokia-arm-sysroot/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Maemo/4.6.2/sysroots/fremantle-arm-sysroot-20.2010.36-2-slim/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so
/Users/pfn368/QtSDK/Qt Creator.app/Contents/MacOS/qmlpuppet.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Qt Creator.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/QtSources/4.8.0/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/QtSources/4.8.0/plugins/sqldrivers/libqsqlite_debug.dylib
/Users/pfn368/QtSDK/Simulator/Application/simulator.app/Contents/PlugIns/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Simulator/Qt/gcc/plugins/sqldrivers/libqsqlite.dylib
/Users/pfn368/QtSDK/Simulator/Qt/gcc/plugins/sqldrivers/libqsqlite_debug.dylib

这是我的 .pro 文件

QT       += sql core gui\
           network

TARGET = mini-stock-exchange
TEMPLATE = app

SOURCES += ./src/main.cpp\
        ./src/mainwindow.cpp

HEADERS  += ./header/mainwindow.h

FORMS    += ./ui/mainwindow.ui

我的包括

#include "./header/mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QFile>
#include <QtSql/QSqlError>
#include <qsqldatabase.h>
#include <QtCore>
#include <QtSql>

调用数据库的代码

QSqlDatabase defaultDB = QSqlDatabase::addDatabase("QMYSQL3");
if ( !defaultDB.isValid() ) {
    qWarning( "Failed to connect to the database driver" );
}
defaultDB.setDatabaseName( "nicu" );
defaultDB.setUserName( "root" );
defaultDB.setPassword( "root" );
defaultDB.setHostName( "http://localhost:8889" );

首先下载Qt SDK源代码和一个版本的mysql服务器源代码,并将它们都解压。

创建 MySQL 的 lib 文件的符号链接:

sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient_r.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient_r.18.dylib

在那之后cd将您提取的 Qt SDK 放入文件夹中/Users/simon/Downloads/qt-everywhere-opensource-src-4.8.4/src/plugins/sqldrivers/mysql

构建库:

qmake -spec macx-g++ -o Makefile "INCLUDEPATH+=/Users/simon/Downloads/mysql-5.6.11-osx10.7-x86_64/include" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro
make
mv libqsqlmysql_debug.dylib libqsqlmysql.dylib
cp -R libqsqlmysql.dylib /Developer/Applications/Qt/plugins/sqldrivers/

之后您应该能够使用 QMYSQL 插件。检查是否使用这行代码正确加载了库(将其放入某个构造函数中,以便在启动应用程序后立即输出):

qDebug() << QCoreApplication::libraryPaths();
qDebug() << QSqlDatabase::drivers();

例如我的输出现在看起来像这样:

("/Developer/Applications/Qt/plugins", "/Users/simon/Coding/qt4c/build-SQLtable-Desktop-Debug/SQLtable.app/Contents/MacOS") 
("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC", "QPSQL7", "QPSQL") 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac 上的 Qt MySQL 的相关文章

  • 如何自定义 NSSlider

    我正在尝试在 Cocoa 中实现一个具有 5 个值的自定义滑块 查看我的演示项目 可以在此处下载 http s000 tinyupload com index php file id 07311576247413689572 http s0
  • 如何使用样式表删除 QWizard 中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我已经发布了一个最小的例子here https stackoverflow com q 52538669 8570451 这个问题是由scopchanov从最小的例子中解决的 但是
  • 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

    数据库表中已有的演示数据 INSERT INTO csvtbl ID SKU Product Name Model Make Year From Year To VALUES 1 C2AZ 3B584 AR Power Steering P
  • 使用 EXPLAIN 进行 MYSQL 存储过程调用

    如何分析和使用 EXPLAIN 来调用我的存储过程 我需要优化查询时间 但是似乎没有地方可以执行 EXPLAIN 调用 proc name 你可以试试 set profiling 1 call proc name show profiles
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 使用样式表时的 QTabWidget tabPosition

    我目前正在使用样式表来设计应用程序的主题 这是我用于 QTabWidget 的样式表 QTabBar et QTabWidget QTabBar tab background qlineargradient spread pad x1 0
  • MySQL 中的断言

    我有一个针对大型数据库运行的 SQL 脚本 我想在开始时提出几个简单的查询 作为健全性检查 有没有办法在MySQL中写断言 或者任何类型的 选择 如果它与该值不匹配 则中止整个脚本 一些疯狂的代码 要点是 SET可能会引发 mysql 变量
  • PDO fetch() 失败时会抛出异常吗?

    有没有方法PDO语句 fetch http php net manual en pdostatement fetch php如果 PDO 错误报告系统设置为抛出异常 则在失败时抛出异常 例如 如果我设置 PDO ATTR ERRMODE g
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • Spark SQL/Hive 查询通过 Join 永远持续下去

    所以我正在做一些应该很简单的事情 但显然它不在 Spark SQL 中 如果我在 MySQL 中运行以下查询 查询将在不到一秒的时间内完成 SELECT ua address id FROM user u inner join user a
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • 如何在不使用 MacPorts 或 Fink 的情况下在 OS X Leopard 上安装 lxml?

    我过去曾多次尝试过此操作并遇到问题 有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法 并且绝对有效 最好有完整的 1 2 3 步骤来下载和构建每个依赖项 感谢 Twitter 上的 jesse
  • 在 Mac OS X Yosemite 10.10.1 上包含搜索路径

    我只是为了更改包含搜索路径顺序 我相信 I d like to change the include search path Especially I need usr local include first 但它不会因为重复而改变 我怎样
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • 水银大号

    你知道如何让 Quicksilver 在屏幕上显示大量的大字体吗 通过点击 然后输入自由文本 选择 操作 下的 查看大字体 并按 Enter 键 好吧 有谁知道一种以编程方式做到这一点的方法吗 另外 quicksilver 是必需的还是内置
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com

随机推荐

  • Go,tcp打开文件太多调试

    这是一个简单的 Go http tcp 连接测试脚本 func main ts httptest NewServer http HandlerFunc func w http ResponseWriter r http Request fm
  • 再次:在函数内设置环境

    已经有很多关于范围 环境和功能的讨论 参见例如here https stackoverflow com questions 23234640 why do variable lookups in the body of function a
  • 分页符在 Node js 中的 html-pdf 转换器中不起作用

    I am using html pdf 2 2 0 module to convert my html in pdf I am using table with multiple rows so I want to use page bre
  • ruby 布尔运算符或 ||差异[重复]

    这个问题在这里已经有答案了 可能的重复 Ruby 之间的区别和 或 https stackoverflow com questions 2083112 ruby difference between and or 在 ruby 中 不是 o
  • 导航到某个路径后清除位置状态

    我正在使用反应路由器browserHistory导航到路径 browserHistory push pathname mycomponent state someValue value 所以这将导航到 mycomponent 一旦我到达我的
  • 向 xib 中的“主视图”添加约束

    我有一个UIView在 xib 文件中定义 我需要设置translatesAutoresizingMaskIntoConstraints NO 这意味着框架不会转换为约束 因此我需要自己设置尺寸约束 我创建了一个工作类别方法UIView N
  • Sticky 命令如何影响 Tkinter 中的 python 代码?

    from tkinter import from tkinter import ttk root Tk root rowconfigure 0 weight 1 root columnconfigure 0 weight 1 frame t
  • 非全屏 UINavigationController

    是否可以以不使用整个窗口的方式使用 UINavigationController 我尝试过设置它的视图框架以及将其视图添加到另一个 非全屏 视图而不是窗口 但似乎都不起作用 您不能直接更改 UINavigationController 或其
  • 不要重写静态 css/js/img 文件

    我试图让我的 htaccess 文件不重写我的静态文件 js css images 这是我当前的 htaccess 文件 RewriteEngine on RewriteCond SCRIPT FILENAME f RewriteCond
  • 将字符串转换为字节数组,然后返回原始字符串

    在Java或Android中是否可以将字符串转换为字节数组 然后将其转换回原始字符串 我的目标是将一些字符串发送到微控制器 Arduino 并将其存储到 EEPROM 这是唯一的 1 KB 中 我尝试使用MD5 http en wikipe
  • ASP.Net 的最佳“加载”反馈?

    因此 我们有一个 ASP Net 应用程序 相当标准 并且有很多更新面板和回发 在某些页面上我们有
  • 如何通过 Cygwin 在 Windows 上安装 sshpass?

    在 CygWin 的包窗口中 当我输入 sshpass 时 什么也没有出现 我尝试安装类似的软件包 如 openssh 等 希望其中之一包含 sshpass 但没有运气 sshpass 不作为 Cygwin 软件包提供 这意味着您需要从源代
  • 在 Matlab 中从 .ravi 文件中提取温度

    我的问题 很像这里的帖子 如何从 ravi 文件获取数据 https stackoverflow com questions 58899981 how can i get data from ravi file 我有一个 ravi 文件 辐
  • 在 ggplot 中添加第二个 geom_tile 层

    我有一个相对简单的热图geom tile在ggplot2中 它只是一个由连续数据组成的小矩阵 如彩色框 df1 我想覆盖第二个逻辑 geom tile 来概述TRUE值 df2 这样的事可以做吗 我知道将两个热图添加在一起看起来很丑陋 但这
  • 我如何在 RFM.RFMID=PV.RFMID [重复] 上使用不同的 INNER JOIN RFM

    这个问题在这里已经有答案了 可能的重复 从多个表中获取数据 https stackoverflow com questions 11738574 get data from multiple table SELECT PM PMID RFM
  • 添加故事板视图作为以编程方式创建的视图的子视图

    我创建了一个特殊的 UIView 类 它具有某些属性 并且我以编程方式执行此操作 因为它通常是空白的 但有时会包含其他视图 我知道如果我以编程方式创建 UIView 我可以做类似的事情 specialView addSubview aVie
  • CKEditor + Yii 加载 AJAX:$_POST 不包含更新的值

    简而言之 我正在使用 Yii 框架 我的页面上有一个 Ckeditor 窗口 php yii 框架 工作正常 当我点击按钮时 会生成一个新的 CKeditor 窗口并通过 AJAX 调用显示 问题 这个新的 CKEditor 窗口正确显示数
  • 如何隐藏 HTML 页面的源代码

    我创建了一个 HTML 页面 现在想隐藏源代码并对其进行加密 我怎样才能做到这一点 您可以禁用右键单击 但这是一个坏主意 因为专家可以从您的页面读取任何内容 您无法完全隐藏页面源 这是不可能的 互联网上没有什么是足够安全的 无论如何 您都可
  • 等高列和垂直对齐列中的图像?

    想知道是否有人可以向我展示在图像列中垂直对齐图像并使列的高度等于文本列的最佳方法 CSS padding 0 margin 0 col width 50 float left height 100 col text background s
  • Mac 上的 Qt MySQL

    我浪费了大约 6 个小时试图按照网上的各种说明让 MySQL 与 Qt 一起工作 我现在就想把自己的手腕砍掉 有谁对如何将 QMYSQL 驱动程序安装到 Qt 中有简单和详细的解释吗 我有 Mac 10 6 我是初学者 我将衷心感谢您的帮助