Почему удаляет половину?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
ToNic
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 05.01.2004 (Пн) 1:10
Откуда: Ekaterinburg

Почему удаляет половину?

Сообщение ToNic » 10.05.2004 (Пн) 4:52

Код следующий:

Код: Выделить всё
Set cn = New ADODB.Connection
        cn.Open "Provider=microsoft.jet.oledb.4.0; data source=" & App.Path & "\Abiturent.mdb"
        SQL = "select * from AB_Sved"
        Set rs = New ADODB.Recordset
            rs.Open SQL, cn, adOpenDynamic, adLockOptimistic
                Do Until rs.EOF
                    rs.Delete
                    rs.MoveNext
                Loop
            rs.Close

работает (удаляет всех) в WinXP&OfficeXP, а в Win98&Office2000 НЕ РАБОТАЕТ - удаляет половину записей или/и ошибка "Недопустимая закладка". Подскажите, пожалуйста, что я делаю не так. :cry:

3ton
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 07.05.2004 (Пт) 10:56
Откуда: Kaliningrad

Re: Почему удаляет половину?

Сообщение 3ton » 10.05.2004 (Пн) 11:43

ToNic писал(а):Код следующий:
SQL = "select * from AB_Sved"
Set rs = New ADODB.Recordset
rs.Open SQL, cn, adOpenDynamic, adLockOptimistic
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
rs.Close

Может не по теме, но я делаю так
Код: Выделить всё
sql = "DELETE AllTovar.* FROM AllTovar"
rs.Open SQL, cn, adOpenStatic, adLockOptimistic

И не заморачиваюсь с контекстом перебора.
Жить - хорошо! А хорошо жить - еще лучше!!!
Удачи! Шурик.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 10.05.2004 (Пн) 22:24

хахаха

правильно! одну удаляешь другую rs.MoveNext пропускаешь))))

rs.MoveFirst как вариант(не 100%)

PS: Как это удобно в Нет!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

ToNic
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 05.01.2004 (Пн) 1:10
Откуда: Ekaterinburg

Сообщение ToNic » 12.05.2004 (Ср) 5:26

Спасибо!
Код: Выделить всё
sql = "DELETE AllTovar.* FROM AllTovar"
rs.Open SQL, cn, adOpenStatic, adLockOptimistic

удаляет всё - супер! И скорость приличная.
А через rs.MoveFirst удаляется часть, но после 3 -х вызовов цикла все записи стираются (1200 записей, а при моём коде 9-10 вызовов)
Ночь была, хотелось спать,|Решил прогу написать.|Внезапный вдруг Вопрос возник,|И исходник встал в тупик.|MSDN я почитал,|И полчаса охр ... вал.|На VB-улицы зашёл,|И Help реальный здесь нашёл!


Вернуться в Базы данных

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron