powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странности удаление ADO и MSSQLSEREVR 2k
9 сообщений из 9, страница 1 из 1
Странности удаление ADO и MSSQLSEREVR 2k
    #32049711
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При удалении записи в RecordSet-e приходиться делать requery
Код примерно такой:


With tmpRS
If .RecordCount > 0 Then .MoveFirst
Do While Not .EOF
KeyRS.MoveFirst
KeyRS.Find "ID=" & tmpRS!Target_ID
If KeyRS.EOF Then
.Delete (adAffectCurrent)
End If
.MoveNext
End If
Loop
End With

Почему именно так? Ведь это доп. нагрузка на сервер!

Причем сбиваются значение полей .RecordCount он равен 0

Не делается .MoveNext - идет глюк "Дескриптор указывает на удаленную строку"
Как все енто решить?
Помогите!

если юзер другой удаляет запись, то происходят аналогичные ошибки....
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049719
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQL знает только один способ удаления - SQL-выражение "DELETE FROM ..."
Все остальное от лукавого, а потому любые "странности" имеют право на существование.
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049729
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот они - басиковцы и паскалисты! :-))))) Сразу видно, что никогда не удаляли элемент из stl'ного контейнера и не чесали потом репу с вопросом "а че итератор на какую-то лажу указывает?".

Млин, дети прогресса...
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049890
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GreenSunrise-ку - лучше свою почешите и дайте дельный совет, чем на пустом месте зубами клацать.....
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049915
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вам Dankov ответил - delete from <table> where id = <id>. Я к нему присоединяюсь - все остальное от лукавого.

Или вам необходимо объяснение, почему после удаления элемента из коллекции указатель на него становится невалидным? Мож, сами додумаетесь?
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049926
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему он невалиден уже ясно... но неужели нет способов...
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049933
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши:
Connnection.execute("delete from TmpRsTable where Target_ID in (select ID from KeyRsTable)")

Кстати как у тебя этот код работает:

With tmpRS
If .RecordCount > 0 Then .MoveFirst
Do While Not .EOF
KeyRS.MoveFirst
KeyRS.Find "ID=" & tmpRS!Target_ID
If KeyRS.EOF Then
.Delete (adAffectCurrent)
End If
.MoveNext
End If
Loop
End With

Может loop и end if местами надо поменять?
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32049978
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще почему-то удаление происходит, если EOF.
Наверное нужно not EOF?
...
Рейтинг: 0 / 0
Странности удаление ADO и MSSQLSEREVR 2k
    #32050289
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Пример и правда нерабочий, а так вырезка с правкой на корую руку....
Действительно написал, что-то вроде

Connnection.execute("delete from TmpRsTable where Target_ID in (select ID from KeyRsTable)")

и работает теперь никто не ругается
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странности удаление ADO и MSSQLSEREVR 2k
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]