我在Windows7上使用Windows7。
我正在编写一个Qt应用程序,以取代一个旧的C#应用程序(写在7-8年前)。目标是连接和传输来自某些远程数据库的数据。远程DB服务器是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();
...
}
}帮帮忙,知道吗?
耽误您时间,实在对不起!
发布于 2016-03-15 13:52:36
除了裁剪fat (即只选择您需要的字段而不是*)之外,检查是否使用了最佳的ODBC驱动程序。
Server有一个可以安装和使用的"ODBC Server本机客户端“,它应该比默认ODBC驱动程序更快。它可能已经安装在您的PC上,但没有为您的数据源选择,或者您可以尝试从一些尘土飞扬的SQL Server 2000 DVD中安装它(或者它当时是CD吗?)或者-不是开玩笑-软盘?),或者来自最近的Server版本。YMMV
不确定C#,但C#应用程序可能可以访问不需要ODBC的快速驱动程序。
https://stackoverflow.com/questions/36007496
复制相似问题