Имя: Пароль:
1C
1С v8
ado+access
0 4666
 
22.05.12
21:03
Добрый вечер.
Есть обработка импорта данных из акцеса. Работавшая до последнего времени.
   Попытка
       БазаAccess = New COMОбъект("ADODB.CONNECTION");
       БазаAccess.Open(СтрокаПодключения);
   Исключение
       Сообщить("!!! Не удалось подключиться к указанному mdb-файлу");
       Сообщить(Символы.Таб + "в базу Access данные записаны не будут");
       Возврат;
   КонецПопытки;

   Cmd = New COMОбъект("ADODB.Command");
   Cmd.ActiveConnection = БазаAccess;
   НачПериодаСтр = Строка(Формат(НачПериода,"ДФ=MM/dd/yyyy"));
   КонПериодаСтр = Строка(Формат(КонПериода,"ДФ=MM/dd/yyyy"));
   
   //Расходные  накладные+
   Если ЗагружатьРасходныеНакладные Тогда
       Cmd.CommandText = "Select * From расход where расход.дата Between #"+НачПериодаСтр+"# and #"+КонПериодаСтр+"# and расход.продано=true order by расход.дата";
       Rs = Cmd.Execute();
       //ADOНаборДанныхТовары   = Новый COMОбъект("ADODB.RecordSet");
       //ADOНаборДанныхТовары   .Open(Cmd.CommandText, БазаAccess);
       
       Rs.MoveFirst();
//*******************
С недавнего времени выдает спотыкается на последней строчке и выдает ошибку: {Форма.Форма1.Форма(147)}: Ошибка при вызове метода контекста (MoveFirst)
       Rs.MoveFirst();
по причине:
Произошла исключительная ситуация (ADODB.Recordset): BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись.

В чем может быть причина?
1 МихаилМ
 
22.05.12
21:06
измените тип курсора на статический
2 shuhard
 
22.05.12
21:11
(1) + 1 или заменить на MoveNext()
3 4666
 
22.05.12
21:33
(1)
Вставил установку курсора:
   Попытка
       БазаAccess = New COMОбъект("ADODB.CONNECTION");
       БазаAccess.Open(СтрокаПодключения);
       БазаAccess.CursorLocation = 3;
   Исключение
       Сообщить("!!! Не удалось подключиться к указанному mdb-файлу");
       Сообщить(Символы.Таб + "в базу Access данные записаны не будут");
       Возврат;
   КонецПопытки;
Тоже самое(
4 shuhard
 
22.05.12
21:35
(3) значит рекордсет пустой
5 4666
 
22.05.12
21:40
(4)да. так и было. спасибо.
Где лучше почитайть об методах адо?
6 МихаилМ
 
22.05.12
21:41
(5)
в справке к аксесу97
7 shuhard
 
22.05.12
21:44
(5) лучше код поправить
нельзя мувать не проверив EOF
8 4666
 
22.05.12
22:03
(7) все вроде поправил. спасибо.
9 4666
 
22.05.12
22:03
(5) спасибо
10 4666
 
22.05.12
22:03
т.е. 6))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший