C++ (Qt)
#include <QtCore/QDebug>
#include <QtCore/QVariant>
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QDateTime>
#include "qdbftable.h"
#include "qdbfrecord.h"
#include "qdbffield.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={SQL Server Native Client 10.0};SERVER=SRVSQL1;Database=smeta;Trusted_Connection=Yes;");
db.open();
QSqlQuery q;
q.exec("select Code, Name, Cat, Level, Price, DATEBEG, DATEEND from P06");
qDebug() << QDateTime::currentDateTime().toString("hh:mm:ss");
QDbf::QDbfTable table;
if (!table.open("C:/DBF/P06.dbf", QDbf::QDbfTable::ReadWrite)) {
qDebug() << "file open error";
return a.exec();
}
table.setCodepage(QDbf::QDbfTable::IBM866);
while(q.next())
{
QDbf::QDbfRecord rec = table.record();
rec.setValue(0, q.value(0));
rec.setValue(1, q.value(1));
rec.setValue(2, q.value(2));
rec.setValue(3, q.value(3));
rec.setValue(4, q.value(4));
rec.setValue(5, q.value(5));
rec.setValue(6, q.value(6));
table.addRecord(rec);
}
table.close();
qDebug() << QDateTime::currentDateTime().toString("hh:mm:ss");
db.close();
qDebug() << "End...";
return a.exec();
}
Вот код записи таблицы P06 в dbf, там порядка 170.000 записей ... когда запускаешь у себя на сервере выгружается меньше чем за 1 минуту,
а через удаленный сервер - 40 минут