Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
visualstudio中qt中的连接sql数据库 我开始在VisualStudioC++(2013)中编程,我使用Qt(5.5.0)来实现用户界面。 我正在尝试连接到我的sql server数据库(sql server 2012)_C++_Qt_Visual Studio 2013_Sql Server 2012 - Fatal编程技术网

visualstudio中qt中的连接sql数据库 我开始在VisualStudioC++(2013)中编程,我使用Qt(5.5.0)来实现用户界面。 我正在尝试连接到我的sql server数据库(sql server 2012)

visualstudio中qt中的连接sql数据库 我开始在VisualStudioC++(2013)中编程,我使用Qt(5.5.0)来实现用户界面。 我正在尝试连接到我的sql server数据库(sql server 2012),c++,qt,visual-studio-2013,sql-server-2012,C++,Qt,Visual Studio 2013,Sql Server 2012,基于文档,它应该是简单的。这是我的代码: #include "qt_test1.h" //#include "ui_qt_test1.h" #include <qmessagebox.h> #include <qfiledialog.h> #include <QtGui> #include <QtSql\qsql.h> #include <QtSql\qsqldatabase.h> #include <QtSql\qsqlerro

基于文档,它应该是简单的。这是我的代码:

#include "qt_test1.h"
//#include "ui_qt_test1.h"
#include <qmessagebox.h>
#include <qfiledialog.h>
#include <QtGui>
#include <QtSql\qsql.h>
#include <QtSql\qsqldatabase.h>
#include <QtSql\qsqlerror.h>
#include <qdebug.h>

qt_test1::qt_test1(QWidget *parent)
: QMainWindow(parent)
{
    ui.setupUi(this);

}

qt_test1::~qt_test1()
{

}

// when button clicked try to connect to database
void qt_test1::on_btnShowHello_clicked()
{

    QSqlDatabase db = QSqlDatabase::addDatabase("mydb");
    db.setDatabaseName("C:\\Program Files\\Microsoft SQL Server\\MSSQL11.MSSQLSERVER\\MSSQL\\DATA\\qt_test_db");

    bool ok = db.open();
}
#包括“qt_test1.h”
//#包括“ui_qt_test1.h”
#包括
#包括
#包括
#包括
#包括
#包括
#包括
qt_test1::qt_test1(QWidget*父)
:QMainWindow(父级)
{
ui.setupUi(这个);
}
qt_test1::~qt_test1()
{
}
//单击按钮时,尝试连接到数据库
void qt_test1::on_btnshowholl_clicked()上
{
QSqlDatabase=QSqlDatabase::addDatabase(“mydb”);
db.setDatabaseName(“C:\\Program Files\\Microsoft SQL Server\\MSSQL11.MSSQLSERVER\\MSSQL\\DATA\\qt\u test\u db”);
bool ok=db.open();
}
当我试着调试的时候,我得到了一个奇怪的错误。我不知道这是我的代码问题还是qt安装错误

错误:

错误2错误LNK2019:未解析的外部符号 “u declspec(dllimport)public:u cdecl QSqlDatabase::~QSqlDatabase(void)“(\uu imp\u1QSQLDatabase@@QEAA@XZ) 在函数“private:void\u cdecl”中引用 qt_test1::单击时显示Hello(无效)” )你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1

错误3错误LNK2019:未解析的外部符号 “uu declspec(dllimport)public:bool_uucdecl QSqlDatabase::open(void)” (uu_uimp_u)?open@QSqlDatabase@@QEAA_NXZ)在函数“专用: void\u cdecl qt\u test1::在单击时(void) )你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1

错误4错误LNK2019:未解析的外部符号 “uu declspec(dllimport)public:void uu cdecl QSQLDABASE::setDatabaseName(类QString常量&)” (uu_uimp_u)?setDatabaseName@QSqlDatabase@@QEAAXAEBVQString@@@Z)已引用 在函数“private:void\uu cdecl”中 qt_test1::单击时显示Hello(无效)” )你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1

错误5错误LNK2019:未解析的外部符号 “uu declspec(dllimport)public:静态类QSqlDatabase_uucdecl” QSqlDatabase::addDatabase(类QString const&,类QString const &)“(u_uimp_u)?addDatabase@QSqlDatabase@@萨?AV1@AEBVQString@@0@Z) 在函数“private:void\u cdecl”中引用 qt_test1::单击时显示Hello(无效)” )你好_clicked@qt_test1@@AEAAXXZ)E:\Project\qt_test1\qt_test1\qt_test1.obj qt_test1

错误6错误LNK2001:未解析的外部符号 “uu declspec(dllimport)public:静态字符* QSqlDatabase::defaultConnection“ (uu_uimp_u)?defaultConnection@QSqlDatabase@@2开头)E:\Project\qt\u test1\qt\u test1\qt\u test1.obj qt\u test1

错误7错误LNK1120:5未解决 外部E:\Project\qt\u test1\x64\Debug\qt\u test1.exe qt\u test1


您的项目可能缺少QtSql.lib依赖项。在VS的项目配置中的某个地方,您应该可以添加链接器其他依赖项-此库应该位于您的Qt安装目录(Qt/lib)中。希望有帮助。

这不是你的代码,也不是Qt安装。你只是不明白C/C++是如何编译程序的。我建议您研究一下预编译器、编译器和链接器是如何工作的,以填补您的知识空白

简而言之,每当您遇到“未解析的外部符号”错误时,这都是链接器生成的错误,这意味着您在项目设置中遗漏了某种库

Qt附带了一系列模块,这些模块被组织到不同的库中。
QSql
模块只是其中之一

如果您有Qt的Visual Studio加载项,这很容易修复:只需右键单击项目,选择
Qt项目设置
,然后在
Qt模块
选项卡上选择
SQL

如果没有安装外接程序,则必须手动添加依赖项

右键单击项目,选择
Properties
。 展开
配置属性
,然后展开
链接器
并选择
输入
。 在附加依赖项中,添加:

  • 将Qt5Sqld.lib添加到调试配置
  • 将Qt5Sql.lib添加到发布配置中