我已经在Windows上测试了很多次。
(我需要使用MS-Access升级旧应用(
试图使用交易是否使用交易,bindvalues,inserts不超过1061行。
我已经使用此代码进行了测试:
this->db_ = QSqlDatabase::addDatabase("QODBC");
QString archivo_elegido = QString(ruta_inicial_ + "cods.mdb");
cout << "archivo: " << archivo_elegido.toStdString() << endl;
this->db_.setDatabaseName(QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1;").arg(QDir::toNativeSeparators(archivo_elegido)));
if(!this->db_.open("",""))
{
cout << this->db_.lastError().text().toStdString() << endl;
}
int i = 0;
this->query = QSqlQuery(this->db_);
for(i=0; i< 20000;i++)
{
QString q;
q.append("INSERT INTO claves ");
q.append("(claveacceso) " );
q.append( "VALUES (:claveacceso) ");
this->query.prepare(q);
this->query.bindValue(":claveacceso", QString::number(i));
this->query.exec(); // No errors here.
cout << endl << " " << i;
}
this->db_.close();
QString q;
q.append("INSERT INTO claves ");
q.append("(claveacceso) " );
q.append( "VALUES (?) ");
this->query.prepare(q);
QVariantList varLst;
for(i=0; i< 20000;i++)
{
varLst << QVariant::fromValue(i);
}
this->query.addBindValue(varLst);
this->query.execBatch();
我有错误。我正在测试,基于http://mdbtools.sourceforge.net/。
MDB查看器即使我应用查询,也只会向我展示拳头1000行。