Delete adAffectGroup

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Delete adAffectGroup

Сообщение shady » 11.07.2008 (Пт) 8:43

Добрый день уважаемые форумчане.
Пытаюсь укратить Recordset, но пока безуспешно. Надеюсь на вашу помощь.

Итак. Суть в следующем. Открываю рекордсет:
Код: Выделить всё
... conn, adOpenDynamic, adLockOptimistic

Сохраняю
Код: Выделить всё
.Save App.Path & "\ExportData\BillProd.rst", adPersistADTG


После чего...:
Код: Выделить всё
cnnMSPersist.Open "Provider=MSPersist"
rst.Open App.Path & "\RecivedFiles\BillProd.rst", cnnMSPersist

Рекордсет открыт, все сделал что нужно, но вот понадобилось мне удалить несколько записей из этого рекордсета:
Код: Выделить всё
With rst
  .Filter = "ID=5"
  .Delete adAffectGroup
End With


И на .Delete adAffectGroup я получаю сообщение:
Run-time error '3219':
Операция не допускается в данном контексте

Непонятно почему такое происходит, т.к. .Delete без adAffectGroup работает.

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 11.07.2008 (Пт) 11:01

Так как не могу объяснить причину такого поведения, склоняюсь таки что это глюк :(
Пришлось делать построчное удаление
Код: Выделить всё
For i = 1 To .RecordCount
  .Delete
  .MoveNext
Next i

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.07.2008 (Пт) 23:23

Скорее не глюк, а фича.
Я так понял, что adAffectGroup почему-то не работает с отсоединенными рекордсетами.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.07.2008 (Пт) 23:25

Код, кстати, у тебя плохой.
Советую такой:
Код: Выделить всё
Do Until rs.EOF
  .MoveFirst
  .Delete
Loop
Lasciate ogni speranza, voi ch'entrate.

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 14.07.2008 (Пн) 7:14

alibek писал(а):Код, кстати, у тебя плохой.
Чем именно он плох.
З.Ы. Для себя на будущее...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 55

    TopList