㈠ Qt5 linux 無法連接sqlite
先安裝好sqlite,然後去系統軟體源中找qt自帶的sqlite的驅動安裝。
Linux平台下解決Qt5連接mysql資料庫的問題:輸入sudoapt-getinstalllibqt5sql5-mysql解決,這種方法只能解決Qt是用sudoapt-getinstallqt-sdk命令裝的低版本的Qt5(如5、2、x)缺少MySQL驅動問題,如果你的Qt5版本為5、7、X,那麼就不能用這種方法解決,請參考下面的方法。
㈡ QT連接SQL Server 2008 R2出現「Driver not loaded」的問題。
在程序發布目錄下新建一個文件夾sqldrivers,將qsqlodbc4.dll放到這個文件夾裡面。
㈢ QT連接資料庫,在其他電腦上運行時,為什麼提示無法連接資料庫
你沒有把QT的資料庫驅一起復制到其它電腦上去QtSqld4.dll或者QtSql4.dll版本不一樣,一個是debug一個是release版。
㈣ 請我怎樣實現qt和sql server 2014的連接
怎樣實現qt和sql server 2014的連接
步驟:
1. Qt里新建一個空工程,添加main.cpp文件。
2. 在工程文件(.pro文件)添加一行:QT += sql。
3. 該敲代碼了,代碼如下:
[cpp] view plain
#include <QtGui>
#include <QString>
#include <QTextCodec>
#include <QSqlDatabase>
#include <QtSql>
/*連接資料庫*/
void OpenDatabase()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;"
"DATABASE=%2;"
"UID=%3;"
"PWD=%4;").arg("QIAN-PC")
.arg("StuManager")
.arg("sa")
.arg("123456"));
if (!db.open())
{
QMessageBox::warning(0, qApp->tr("Cannot open database"),
db.lastError().databaseText(), QMessageBox::Cancel);
}
else
{
qDebug()<<"Connect to Database Success!";
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
㈤ QTcreater鏈接不到用SQL Server2008 的資料庫是怎麼回事
A、檢查SQL服務是否已啟動
開始---控制面板----管理工具---服務-------sql server服務---啟動
B、如是遠程連接,檢查是否已設置好遠程連接。
1、開始-->程序->sql配置工具->sqlsever 外圍應用配置器
2、點擊服務和連接的的外圍應用配置器
3、選擇遠程連接
4、選擇本地及遠程連接
5、選擇反使用TCP/IP
6、單擊確定
㈥ QT訪問MYSQL資料庫為什麼一打開子窗口訪問資料庫就出問題
意思是說,還有某查詢引用默認資料庫連接"qt_sql_default_connection"。
如果忽略該警告,Qt官方文檔里也寫了,可能會出現內存泄漏:
Warning: There should be no open queries on the database connection when this function is called,
otherwise a resource leak will occur.
還是不出現這個警告的好。怎麼把它弄沒了呢?我把一切外圍的對象都排除了:僅建立一個連接,打開它,然後關閉連接,調用removeDatabase()。居然還有警告!問題已經鎖定在我關閉連接的語句上:
QSqlDatabase::removeDatabase(QSqlDatabase::database().connectionName());
默認連接的名字也是默認的,需要通過connectionName()函數獲得。這樣寫貌似沒什麼問題,後來調試發現,QSqlDatabase::database()靜態函數實際上使默認連接的引用計數+1。上述句子相當於:
QSqlDatabase db = QSqlDatabase::database();//獲得實例。
QString name = db.connectionName();//獲得默認連接名。
QSqlDatabase::removeDatabase(name);//刪除默認連接。
這樣,問題就清晰了,db獲得了一個引用,此時引用計數為2。在調用removeDatabase()時,db對象並沒有被刪除,默認連接的引用計數仍為2,於是報告警告信息。
我們只需將其改為:
QString name;
{
name = QSqlDatabase::database().connectionName();
}//超出作用域,隱含對象QSqlDatabase::database()被刪除。
QSqlDatabase::removeDatabase(name);
問題就解決了!
如果直接打默認連接名的話,代碼就簡單多了,不過名字不太好打(再說了,萬一Qt把默認連接名改了呢!):
QSqlDatabase::removeDatabase("qt_sql_default_connection");//不推薦。