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

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

Проблемка с удалением записей из набора данных [IB6.x]


Страницы:   1 2 3 4

Juice ©   (2005-10-05 10:21:00) 

Есть TIBDataSet, делаю в него выборку а затем программно удаляю из него множетсво записей, но удаляю имено из набора данных и на саму базу это не отображается - в DeleteSQL стоит что-то наподобие "Delete from ... where 1=2", аналогично и в ModifySQL. После этого показываю это все в TDBGrid.

Проблема в том, что вертикальный скроллбар ведет себя как-то странно, он не дотягивается до самого верхнего положения, а если его переместить в самое нижнее положение то это не будет последние записи - потом еще можно много раз нажать на "стрелку вниз" и "вілезут" еще записи, реально последние.

Попробовал разобраться в чем дело, и обнаружил следующее. Это код, который я вставил после функции "удаления ненужных записей" :

 First;
 while not eof do
 begin
   Next;
 end;

В дебагере имеем следующее :
RecorcCount - 33.
RecNo : после First - 7 ! (Почему?)
после первого Next - 9,
после второго Next - 15,
...
после n-ного Next - 45, (что уже больше чем RecordCount!)
и т.п.

Наверное отсюда и все глюки грида (кстати пробовал и другие гриды, проблема явно не в гриде). Может вы что-то подскажите?


ANB   (2005-10-05 11:09:00) [61]


> Juice ©   (05.10.05 11:03) [2]
- не бывает слишком сложных алгоритмов выборки, которых нельзя реализовать на SQL. Тем более, ИБ очень даже ничего, только с деревом работать не умеет, но это через ХП решается - вон А.Жук уже опубликовал хорошую процедурку.


Desdechado   (2005-10-05 11:06:00) [62]

> Delete from ... where 1=2
имхо, если ничего не вписывать, ничего и не случится с БД

а с правильным запросом и вопросов не будет, как сказал ANB


Juice   (2005-10-05 11:03:00) [63]


> Судя по всему, дырки образовались из-за удаления.
> Вопрос - а зачем огород с удалением в НД "лишних" записей,
>  если в базе они остаются ? Может проще было написать нормальный
> запрос с правильными условиями и не мучиться ?

Ну как вы думаете, если бы я мог просто взять и написать запрос то я бы мучался с датасетом? Запрос такой невозможно написать, алгоритм выборки записей на удаление слишком сложный.


ANB   (2005-10-05 10:50:00) [64]

Судя по всему, дырки образовались из-за удаления.
Вопрос - а зачем огород с удалением в НД "лишних" записей, если в базе они остаются ? Может проще было написать нормальный запрос с правильными условиями и не мучиться ?


Страницы:   1 2 3 4

Наверх

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