【发布时间】:2016-03-15 22:37:46
【问题描述】:
我在 Windows7 上使用 Qt5。
我正在编写一个 Qt 应用程序来替换旧的 C# 应用程序(写于 7-8 年前)。目标是连接和传输来自一些远程数据库的数据。远程数据库服务器是 MS SQL Server 2000。
我已经运行了该应用程序,但我注意到与旧的 C# 应用程序相比,数据传输需要更多时间...
所以,我只是想知道是什么导致了如此低的数据传输率?
也许我忘记了什么,或者我做错了什么......
这是我用来连接远程数据库的代码:
void RemoteDB::openConnection(const QString & serverIP, const QString & dbName)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={SQL Server};SERVER=%1;DATABASE=%2;").arg(serverIP).arg(dbName));
db.open("user", "password");
}
查询代码:
SqlRecord record;
QSqlQuery query(QSqlDatabase::database());
if(query.exec("SELECT * FROM VehicleStatus") == true)
{
while(query.next() == true)
{
record.Vehicle = query.value("Vehicle").toInt();
record.Status = query.value("Status").toInt();
record.AppVersion = query.value("AppVersion").toString();
record.DateTime = query.value("DateTime").toString();
...
}
}
请帮忙,有什么想法吗?
感谢您的宝贵时间!
【问题讨论】:
-
您还应该发布查询代码
-
记录中是否还有其他字段,或者只是您正在使用的 4 个字段?
-
@Ilya:数据库记录有17个字段,我用了13个。(我在上面的sn-p代码中只放了4个,
...不浪费空间和时间) -
好的,因此您可以测试是否仅选择您正在使用的 13 个字段会有所不同
-
感谢您的建议。我进行了测试,可以看到一些改进,但我仍然落后于旧 C# 应用程序的速度。尽管如此,获取更少的远程数据还是更好/更好:) 问候!新加坡。
标签: sql-server database qt optimization remote-server