Приветствую!
Существует две базы
1. MSSQL
2. MS Access
Требуется перекачать выборочно данные из MSSQL в Access
Создаю два подключения
QSqlDatabase elcat_db = QSqlDatabase::addDatabase("QODBC");//and connectionName
elcat_db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=elcat.mdb;Exclusive=1;");
if (!elcat_db.open()) {
QMessageBox::warning(this,"Анализ", elcat_db.lastError().text());
return ;
}
QSqlDatabase p_db = QSqlDatabase::addDatabase("QODBC");//and connectionName
p_db.setDatabaseName("DRIVER={SQL Server};Server=SERV;Database=p;");
p_db.setHostName("localhost");
p_db.setConnectOptions("SQL_ATTR_CONNECTION_TIMEOUT=60");
if (!p_db.open()) {
QMessageBox::warning(this,"Анализ", p_db.lastError().text());
return ;
}else{
return ;
}
После чего вычищаю Аксесовскую базу
QSqlQuery clear_tables_query(elcat_db);
clear_tables_query.exec("DELETE FROM goods");
Далее пытаюсь вытащить данные из MSSQL
QSqlQuery select_needed_data(p_db);
select_needed_data.exec("SELECT goods, ki, name_iz, ves, cena FROM goods WHERE closed<>1 AND cena>0");
Но в результате мне возвращается ошибка
Возвращено: QSqlQuery::lastError {driverError="QODBC3: Unable to execute statement" databaseError=" [Microsoft][Драйвер ODBC Microsoft Access] Слишком мало параметров. Требуется 2." errorType=StatementError ...} QSqlError
Что самое странное, так это то что ошибка от драйвера к MS Access, а подключение я создавал к MSSQL.