Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление записи выскакивает ошибка! [D6, dBase, FoxPro]


s ©   (2002-04-30 09:08:00) 

Я пишу селект потом его обрабатываю и вконце эти записи наобходимо удалить.
Я пишу
for i:=1 to Query.RecordCount do
Query.Delete;
Удаляет примерно 6-7 записей, а потом пишет ошибка.


Anatoly Podgoretsky   (2002-04-30 13:16:00) [1]

Если у него нет одназначной идентификации записей, то в определенных случаях его ничего не спасет


fnatali   (2002-04-30 13:11:00) [2]

Если всё-таки ты хочешь удалять конкретные записи, то попробуй вариант
hooch (30.04.02 09:13)
Если у тебя нет ключевого поля, то попробуй Locate по набору полей для однозначной идентификации записей

Query.First;
while not Query.Eof do
if Table1.locate(конкретная запись по ключевому набору полей из Query) then Table1.Delete;
Query.Next;
end;
Но как-то это сильно...неправильно...(мягко говоря)


Johnmen   (2002-04-30 12:26:00) [3]

Если работаешь с неким множеством записей, то их однозначная идентификация должна быть тебе известна, а значит и удалить только их на представляет трудности...
Если же вдруг нет однозначной идент-ии, то это ошибка проектирования БД и таблий...


s   (2002-04-30 12:15:00) [4]

Я выбираю из таблици все записи потом их распихиваю по разным таблицам, а затем эти записи удаляю, чтобы небыло дублей. Но в этот момент могут еще добавить записи поэтому мне нельзя использовать такой селект:

Delete * from MyDBF.dbf";

Хотя он работает нормально и все записи удаляет как положенио.


fnatali   (2002-04-30 12:11:00) [5]

Что значит "Я пишу селект потом его обрабатываю"?
Если имеется в виду, что сделана выборка из таблиц, выведена пользователю, он сделал какие-то изменения... Далее сохраняем эти изменения, и делаем следующий запрос на удаление - условия удаления записываем как для селекта или какие-нибудь другие -на твоё усмотрение. Или я совсем не поняла, что тебе требуется.


s   (2002-04-30 12:01:00) [6]

Этот метод тоже не работает т.к. пишет недостаточно или отсутствует информация о ключевом поле. Но в dbf файле такого понятия помоему нет. Кто подскажет как выйти из данной ситуации?


Desdechado   (2002-04-30 10:03:00) [7]

если записи в твоем Query обработаны, то
hooch (30.04.02 09:13)


s   (2002-04-30 09:58:00) [8]

Я понимаю, но тогда как мне лучше написать запрос по записям которые уже обратотаны?


fnatali   (2002-04-30 09:43:00) [9]

>Таблица постоянно пополняется и поэтому мне приходится удалять по строчно.
Это не препятствие для исполнения запроса на удаление.


s   (2002-04-30 09:33:00) [10]

Таблица постоянно пополняется и поэтому мне приходится удалять по строчно.


fnatali   (2002-04-30 09:19:00) [11]

Напиши такой Query "delete from ... where..."


Johnmen   (2002-04-30 09:18:00) [12]

>for i:=1 to Query.RecordCount do
>Query.Delete;

Вот это вот - полный бред..................
И еще : 6-7 это половина от 12-14 ! :))))))


hooch   (2002-04-30 09:13:00) [13]

круто :-))) ошибка явно возникает в следствии влияния потусторонних сил :-)))
попробуй так

>>
Query.First;
while not Query.Eof do
Query.Delete
>>


Наверх

Титульная страница Поиск, карта сайта Написать письмо