Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

TIBQuery + IBUpdateSQL + Refresh = problem?   Найти похожие ветки 

 
Irka   (2005-09-10 18:45) [0]

Ситуация проста до безобразия, но..
В  IBUpdateSQL пока только прописан скрипт на refresh. Когда делаю рефреш (кликая на соотв. DBNavigator), то на месте текущей записи отображаются данные из первой записи.  
Думала, что проблема в DBGrid. Но даже при отсоединении последней ситуация та же (за данными наблюдала с помощью DBMemo).
В чем может бить причина и как с этим бороться.
Да, делфи7.


 
Mike Kouzmine ©   (2005-09-10 19:40) [1]

Запомни ИД записи и после рефрешь сделай ее текущей.


 
Irka   (2005-09-10 20:45) [2]

Спасибо, Mike Kouzmine.
После вашего ответа появилась мисль написать:

select * from MyTable
  where Id=:Id

вместо

 select * from MyTable


в Refresh IBUpdateSQL
помогло
:)


 
Irka   (2005-09-11 00:08) [3]

Почему етот запрос возвращает ВСЕ записи?


 
Irka   (2005-09-11 01:24) [4]

Не, конечно, я понимаю, но я  в шоке..
Тут, посоветовали мне посмотреть исхолдники, даже посоветовали примерно где..
Ну, начала от TDataSet.Refresh; потом к
TIBCustomDataSet.InternalRefresh; который вызывает пустышку inherited InternalRefresh; а затем собственно InternalRefreshRow;
Последняя, как я поняла, переносит первую запись, которая возвращается, согласно RefreshSQL, в поточную запись TIBQuery....
Тогда понятно, почему в случае использования select * from MyTable поточная запись забивалась "первой" и почему "select * from MyTable where Id=:Id" дает коректный результат..

Но.. люди добрые, в каком букварике для молоденьких девушек сказано, что так должно быть (я то по наивности предполагала, что должен рефрешится весь набор данных), и что собственно нужно сделать, если я хочу рефрешить все же весь набор данных, а не текущую запись.. Банального переоткрытия набора данных делать не охота, да и хочется, чтобы рефрешился весь набор при щелчке на соответсвующую кнопку DBNavigator...


 
}{ander ©   (2005-09-11 12:00) [5]

> и что собственно нужно сделать, если я хочу рефрешить все же весь набор данных, а не текущую запись..

Close, Open

> Банального переоткрытия набора данных делать не охота, да и хочется

А що робити, синку, що робити... (с)
Единственное, что можно посоветовать - это запоминать bookmark, а затем переходить на нее после переоткрытия DataSet для того, чтобы оставаться на той записи, которая обновлялась.


 
Sergey13 ©   (2005-09-12 09:43) [6]

2[4] Irka   (11.09.05 01:24)
> и что собственно нужно сделать, если я хочу рефрешить все же весь набор данных, а не текущую запись.. Банального переоткрытия набора данных делать не охота, да и хочется...
Это взаимоисключающие хотения. Если не переоткрывать, то что значит решрешить?



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1128319272
WandR
2005-10-03 10:01
2005.10.23
MappedPort под FreeBSD


14-1128150125
Старшеклассник
2005-10-01 11:02
2005.10.23
Чего ждет ослик?


4-1124286067
Anatoly
2005-08-17 17:41
2005.10.23
Функции BitBtl, StretchBLT дают пустую страницу на принтере


2-1127483114
FBI Agent
2005-09-23 17:45
2005.10.23
Создание SQL таблиц?


3-1126500952
leonidus
2005-09-12 08:55
2005.10.23
Где найти инфу по Join`у?