Я использую QT на Windows 10 box. Я подключаюсь к MS_SQL server
для извлечения записей, чтобы я мог переместить их в базу данных Postgres.
Я использую класс QSqlDatabase
, а затем QSqlQuery
, чтобы тянуть строки. Это невероятно медленно ~ 2 строки в секунду. Я ожидал производительность, может быть, в 500 раз быстрее, чем эта. Это та работа, с которой мне приходится иметь дело, или я что-то упускаю?
Вот упрощенная версия того, что я пытаюсь сделать. Это работает на частоте около 2 Гц.
int main(int argc, char *argv[])
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC3");
db.setDatabaseName("DRIVER={SQL Server};Server=10.10.1.32;Database=[DB_NAME];Uid=[UID];pwd=[PWD]");
if (!db.open()) return -1;
QSqlQuery query;
bool worked = query.exec("select * from [TABLE_NAME]");
if (!worked) return -2;
while(query.next())
{
QSqlRecord record = query.record();
for(int i = 0; i < query.record().count(); i++)
{
QVariant value = record.value(i);
fprintf(stdout, "%s\t",qPrintable(value.toString()));
}
fprintf(stdout, "\n");
}
}