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

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

Удаление записи в запросе [D6, dBase, FoxPro]


Alex_1234 ©   (2005-12-13 14:22:00) 

Что неверно делаю: надо получить из таблицы данные, на основе этих данных произвести действия, потом эти полученные данные прибить. Пытаюсь сделать так:
Получаю данные:
qDeleNch - TADOQuery

 qDeleNch.Close;
  qDeleNch.SQL.Clear;
  qDeleNch.SQL.Add('select * from MyDATA where data= :dp and par1= :par1');
  qDeleNch.Parameters.ParamByName('dp').Value:=DateAuto49;
  qDeleNch.Parameters.ParamByName('par1').Value:=StrToInt(edPar1.Text);
  qDeleNch.Open;

Далее по тексту:

  while not qDeleNch.Eof do begin
    {что-то делаю}
     ....
     {пытаюсь удалить обработанную запись}
     qDeleNch.Edit;
     qDeleNch.DeleteRecords(arCurrent);
     qDeleNch.Post;
     qDeleNch.Next;
  end;//

Что я не так делаю???


0bsid   (2005-12-13 17:28:00) [1]

так по идее должно нормально работать, в чём проблемы?

если не получается, то каждый раз создавай SQL запрос на удаление
но лучше сначала создай транзакцию и заверши её после завершения цикла
тогда будет совсем гуд

может быть вообще твоё somecondition можно описать через SQL выборку?


alex_***   (2005-12-13 17:08:00) [2]

[4] -

если я хочу провести набор операций над каждой записью, и при необходимости удалить ненужные, а как записи перебирать?



while not qDeleNch.Eof do begin
   {что-то делаю}
    ....
    {пытаюсь удалить обработанную запись}
    if SomeCondition then
       qDeleNch.DeleteRecords(arCurrent)
   else
      qDeleNch.Next;
 end;


0bsid   (2005-12-13 16:16:00) [3]

судя по всему он решил вообще все выбраные записи удалить :)


Rater   (2005-12-13 16:08:00) [4]

Alex_1234 ©  
Задачку уточни, а именно:
Зачем удалять иличто с этими данными дальше делать?
Что с данными делать  ... {что-то делаю}...

0bsid ©
Непонятно откуда автор удалять хочет...
Возможно просто подкорректировать результат запроса, но тогда может запрос более грамотно написать. Если нет, то разве существует обратная связь на уровне компонента между результатом select`а и самой базой????
(при условии что insertSQL, updateSQL, DeleteSQL не прописаны)


0bsid   (2005-12-13 15:55:00) [5]

создавай запрос на удаление:

qdelnch.close;
qdelnch.sql.clear;
qdelnch.sql.add('DELETE ....');
qdelnch.ExecSQL;


Rater   (2005-12-13 15:39:00) [6]

[4] Не понял...
если я хочу провести набор операций над каждой записью, и при необходимости удалить ненужные, а как записи перебирать?


Anatoly Podgoretsky   (2005-12-13 15:30:00) [7]

И плюс не надо делать while not qDeleNch.Eof


Alex_1234   (2005-12-13 14:34:00) [8]

Спасибо....


alex_***   (2005-12-13 14:24:00) [9]

а зачем в Edit заходить?


Reindeer Moss Eater   (2005-12-13 14:24:00) [10]

Не надо делать Edit
Не надо делать Post
Не надо делать Next


Наверх

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