2010-10-01 64 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

相关问题