Russian Qt Forum

Qt => Базы данных => Тема начата: vvvxmag от Март 22, 2011, 10:11



Название: [Решено]Подключение к двум базам
Отправлено: vvvxmag от Март 22, 2011, 10:11
Приветствую!
Существует две базы
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.


Название: Re: Подключение к двум базам
Отправлено: Пантер от Март 22, 2011, 10:17
QSqlDatabase elcat_db = QSqlDatabase::addDatabase("QODBC", "FRIST");
QSqlDatabase p_db = QSqlDatabase::addDatabase("QODBC", "SECOND");

Если более одного подключения, обязательно указывать имя.


Название: Re: Подключение к двум базам
Отправлено: vvvxmag от Март 22, 2011, 10:24
Спасибо.
Действительно глупая ошибка.


Название: Re: [Решено]Подключение к двум базам
Отправлено: Пантер от Март 22, 2011, 10:31
Спасибо.
Действительно глупая ошибка.
Это не глупая ошибка. Многие на такое напарываются в начале. Я не был исключением.  ;D