2010-10-01 97 views
-2

以下代碼在我的電腦上工作,但在其他電腦上出現錯誤。怎麼可能在所有機器上成功運行它。qt mysql查詢在不同的機器上給出不同的結果

QSqlQuery query; 
QString queryString = "SELECT * FROM " + parameter3->toAscii() + " WHERE " + parameter1->toAscii() + " = \"" + parameter2->toAscii() + "\""; 
bool retX = query.exec(queryString); 

應滿足什麼預必要爲這對任何一臺PC

+2

SQL注入攻擊等情況發生。 – bernie 2010-10-01 06:17:55

+0

您是否嘗試過除應用程序代碼外運行查詢?如果是這樣,返回的是什麼? – bernie 2010-10-01 06:20:33

+0

從qt創建者我得到,真。 – nish 2010-10-01 07:28:32

回答

1

在排除故障運行,如果您隔離查詢並返回了您預期的結果(比如你做了利用Qt Creator的驗證該查詢返回true的結果),下一步將仔細研究您的代碼並驗證您是否將適當的參數傳遞給查詢以供執行。

我有一臺處女機器用於此目的。我是一名貿易軟件工程師,我完全知道我的電腦上安裝了大量的軟件,普通用戶可能不會安裝這些軟件。所以處女允許我以獨立的形式測試代碼。

我建議在執行查詢之前實現一個消息框,以顯示要執行的查詢。這將驗證「其他機器」上的查詢是否正確。

+0

messagebox從表中顯示正確的名稱。使用的DLL是qsqlmysql4.dll,qsqlmysqld4.dll,mingwm10.dll,QtCore4.dll,QtCored4.dll,QtGuid4.dll。那可能是問題領域嗎? – nish 2010-10-04 05:10:59

+0

QSqlDatabase db = QSqlDatabase :: addDatabase(「QMYSQL」); //連接所需的數據 db.setHostName(「xxx.xxx.xx.xx」); db.setDatabaseName(「xxxxxxxx」); db.setUserName(「xxxxx」); db.setPassword(「xxxx」); db.open(); QSqlQuery查詢; ()+「\」「;}參數1-> toAscii()+」= \「」+ parameter2-> toAscii()+「\」「; bool retX = query.exec(queryString); QMessageBox :: information(0,「」,QString :: number(retX)); return retX; – nish 2010-10-04 05:55:57

0

某些dll是需要的。在我的情況下,qtguid4.dll,qtcored4.dll和qtsqld4.dll。有一個尺寸差異。一旦匹配它在一臺電腦上工作。然而,在其他電腦的我仍然得到一個錯誤「應用程序未能初始化0xc000007b .....」

如何才能使應用程序運行。

Brgds,

kNish

相關問題