2013-01-20 171 views
0

我已經放棄嘗試爲Qt 5.0庫配置MYSQL驅動程序,我將使用目前唯一可用的驅動程序 - 「QSQLITE」。Qt SQL - 配置連接到數據庫

我一直試圖讓這個工作了相當長的一段時間,並嘗試在類似的帖子中提到的一切: Select from SQLite with Qt

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setHostName(SQL_SERVER); 
db.setPort(SQL_PORT); 
db.setDatabaseName(SQL_DATABASE); 
db.setUserName(SQL_USER); 
db.setPassword(SQL_PASS); 
bool dbSuccess = db.open(); 
QList<QString> deviceNames; 
QString deviceName; 
qDebug() << db; 
if(dbSuccess){ 
    QSqlQuery query; 
    qWarning("We made it into the DB"); 
    query.exec("SELECT device_name FROM tbl_device"); 
    while (query.next()){ 
     qDebug() << query.value(1).toString(); 
     // deviceNames.append(deviceName); 
     //qDebug() << "Test: "<< deviceName; 
    } 
} 
else if(!db.open()){ 
    qWarning("Database failed to load!"); 
} 

其中SQL_SERVER = 192.168.1.100

我得到以下qDebug輸出從應用程序:

QSqlDatabase(driver=""QSQLITE"", database=""homelogic"", host=""hendrenserver"", port=3306, user=""homelogic"",  open=true) 
We made it into the DB 

輸出建議數據庫連接有效,howe ver如果我將服務器名稱更改爲完全錯誤的內容,如「xlkcjox」或其他隨機密鑰 - 我會得到相同的輸出。我在這裏錯過了什麼?我覺得這應該是相對容易的。

請指教!

回答

2

當爲qt使用sqlite驅動程序時,無論主機名如何,數據庫名都是光盤上的文件。這是sqlite的工作原理。它不需要主機只需一個文件名。

+0

好吧我對PHP使用sqli_ACTION感到困惑,在這種情況下,您仍然需要建立與數據庫的連接。 –

+0

要連接到外部SQL服務器,我必須配置SQL驅動程序正確嗎? –

0

我正在重溫這個問題,以分享我今天遇到的非常有幫助的鏈接。我使用Qt 4.8.4和QODBC驅動程序達成了一個解決方案。由於需要使用QSerialPort和項目錯誤,我今天更新到5.0.1。在重建我的ODBC插件時,我發現這個鏈接:http://seppemagiels.com/blog/create-mysql-driver-qt5-windows。 在20分鐘內,我有我最初想要的,QMYSQL驅動程序,工作。我希望這可以幫助別人!