Имя: Пароль:
1C
1С v8
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers):
0 Caesar
 
16.06.16
13:52
Вот такой код:

ТабРез.Open("select * from mytable where CashNumber = 123"),cnn,0,4);
Если табРез.EOF() = 0 Тогда
    табРез.MoveFirst();
    Пока табРез.EOF() = 0 Цикл
    табрез.fields("myfield").value = 2;
    табРез.update();
    табрез.movenext();
КОнецЦикла;
КонецЕсли;
табРез.updatebatch();

при выполнении на строке табрез.movenext() выдает сообщение об ошибке:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): Все дескрипторы строк должны быть освобождены для получения новых дескрипторов.

Вопрос: каким образом в SQL-таблице изменить данные?
Заранее спасибо.
1 leonidkorolev
 
16.06.16
13:56
Запросом апдейт
2 Зая Бусечка
 
16.06.16
13:57
Ведущие специалисты мира по ADO (шаркаю ножкой) совершенно не советуют использовать методы рекордсета.
Запрос - он подобен пуле. Дура, но делает своё дело.
3 Ёпрст
 
16.06.16
13:59
(0)
update mytable
set myfield = 2
where  CashNumber = 123
4 Jokero
 
16.06.16
14:02
Думается все проще, нет там movenext'a, а табРез.EOF() = 0 не срабатывает.
5 Зая Бусечка
 
16.06.16
14:04
(4) А куда в ADO делся movenext?
6 Caesar
 
16.06.16
14:09
(1) спасибо
(3) так и сделал
закрыли тему.