QSQL 無法連線至 SQL Server 2022 速費版



我试图连接到MSSQLEXP2022数据库,但它总是不做任何事情。数据库本身在Windows ODBC管理器和SSMS中工作得很好。

这是我现在的代码,我尝试了一些东西和代码片段,但没有工作。

#include "sqlconnection.h" //this file
#include <QtSql/QSqlDatabase>
#include <QtSql/QtSql>
SqlConnection::SqlConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //should be fine for MSSQL?
db.setHostName("localhost\SQLEXPRESS"); 
db.setDatabaseName("plutos");
db.setUserName("sa");
db.setPassword("plutos");
if (db.open())
{
QSqlQuery *query = new QSqlQuery(db);
query->exec("INSERT INTO Artikel_Stamm (Artikel_ID) VALUES (3)");
}
return;
};

在这种情况下,除了"写作完成!"从return();声明,但它是一个谎言。如果我把qsqlquery放在&;if&;上面语句返回db.open()失败(或类似),但不会从return()返回;语句,它似乎来自类本身,导致没有return();语句是相同的消息。

我做错了什么?(除了想学习c++)

PS:我使用CMAKE,我添加的2行是:

...
find_package(Qt6 REQUIRED COMPONENTS Sql)
...
target_link_libraries(Plutos PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
...

在我添加这些行之前,它运行到一个编译错误,所以我认为这是正确的,就像在CMakeLists.txt中一样,但我不知道。

谢谢你的建议

如果有人有同样的问题。它现在正在工作,代码如下:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString connectString = "Driver={SQL Server};"; 
connectString.append("Server=localhost,1433;");
connectString.append("Database=plutos;"); 
connectString.append("Uid=sa;");       
connectString.append("Pwd=plutos;");       
db.setDatabaseName(connectString);

最新更新