![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть вот такой код:
Код:
Table1.First; while not Table1.eof do begin if Table1.FieldbyName('Num').AsString=edit1.text then Table1.Delete; Table1.next; end; Почему при выполнении он удаляет не все нужные строки в таблице? Таблицы Paradox. Заранее спасибо |
#2
|
|||
|
|||
![]() Можно так попробовать.
Код:
Var n:integer; begin Table1.First; while not Table1.eof do begin if Table1.FieldbyName('Tip_id').asString =edit1.text then begin n:=Table1.recNo; Table1.Delete; if n<>1 then Table1.recNo:=n-1; end; Table1.next; end; end; |
#3
|
|||
|
|||
![]() Вроде все работает, вот только когда в таблице остаются только те записи, которые нужно удалить (например с индексом "1"), удаляются все кроме первого. Иначе говоря, в таблице все равно остается одна запись, которая удаляется только со второго раза
|
#4
|
|||
|
|||
![]() Ну тогда так.
Код:
Table1.Last; for n:=table1.recordcount downto 1 do begin if Table1.FieldbyName('Tip_id').asString =edit1.text then Table1.delete; Table1.Prior; end; |
#5
|
|||
|
|||
![]() так все работает. Спасибо большое. А в чем была ошибка, вроде алгоритмы совершенно равнозначные?
|
#6
|
|||
|
|||
![]() Цитата:
|
#7
|
|||
|
|||
![]() помоему проще всё было сделать одним SQL-запросом ...
delete from таблица t where t.имя_поля = условие; но как кому нравится |
#8
|
|||
|
|||
![]() Цитата:
Согласен. Но не все ищут легкие пути. ![]() Если размер таблицы не большой то не принципиально. |