Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу сделать UpdateBatch? 
:(
    Опции темы
yours-tester
Дата 2.7.2007, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Копирую данные из одной базы данных в другую. DBF - > Access. 
Решил попробовать использовать UpdateBatch ну так для эксперимента
закоментировал пару строк кода и заменил на другие, однако...
Код

        //dstRec->Open(_bstr_t("Executors"), _variant_t((IDispatch*)dstConn, true), ADODB::adOpenStatic, ADODB::adLockOptimistic, ADODB::adCmdTable);

        dstRec->Open(_bstr_t("Executors"), _variant_t((IDispatch*)dstConn, true), ADODB::adOpenStatic, ADODB::adLockBatchOptimistic, ADODB::adCmdTable);

        ADODB::FieldPtr srcField=srcRec->Fields->GetItem("Descr");
        
        while (!srcRec->EndOfFile)
        {
            vbuf=srcField->Value;
            dstRec->AddNew();
            dstRec->Fields->GetItem("Alias")->Value=vbuf;
            //dstRec->Update();
            srcRec->MoveNext();
        }
        
        dstRec->UpdateBatch(ADODB::adAffectAll);



и
 теперь сразу на втором проходе dstRec->AddNew()
вместо копирования получаю сообщение
получаю сообщение в _com_error.description():
Number of rows with pending changes exceeded the limit.

PM MAIL   Вверх
yours-tester
Дата 2.7.2007, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Всё нашел причину оказывется надо расположение курсора указывать перед открытием рекордсета

//dstRec->Open(_bstr_t("Executors"), _variant_t((IDispatch*)dstConn, true), ADODB::adOpenStatic, ADODB::adLockOptimistic, ADODB::adCmdTable);
dstRec->CursorLocation=ADODB::adUseClient;
dstRec->Open(_bstr_t("Executors"), _variant_t((IDispatch*)dstConn, true), ADODB::adOpenStatic, ADODB::adLockBatchOptimistic, ADODB::adCmdTable);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0374 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.