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

Вниз

Не обновляется набор данных   Найти похожие ветки 

 
RDA ©   (2003-06-22 11:47) [0]

Использую FIBPlus.
Текст запросов

SelectSQL - select * from ORG where STATUS="0"

и для обновления

UpdateSQL - select * from ORG where ( STATUS="0" ) and ( ORG.ID = ?OLD_ID )

Выполняется следующий код

with DM do
if not DovOrg.IsEmpty then
if (Application.MessageBox("Вилучити запис?","Підтвердження",MB_YESNO+MB_ICONQUESTION)=idYES) then
begin
DovOrg.Edit;
DovOrgSTATUS.AsInteger:=1;
DovOrg.Post;
end;

После чего запись видна в гриде, хотя вижу точно в IBManager что поле статус изменено.
Из опций TfibDataSet
AutoCommit=True
Options=[poTrimCharFields,poRefreshAfterPost,poStartTransaction,poAutoFormatFields,poAllowChangeSqls]


 
RDA ©   (2003-06-22 11:55) [1]

Добавил две строчки и код выглядит так

with DM do
if not DovOrg.IsEmpty then
if (Application.MessageBox("Вилучити запис?","Підтвердження",MB_YESNO+MB_ICONQUESTION)=idYES) then
begin
DovOrg.Edit;
DovOrgSTATUS.AsInteger:=1;
DovOrgDATASTATUS.AsDateTime:=Date;
DovOrg.Post;
DovOrg.Active:=False;
DovOrg.Active:=True;
end;

Все нормально. Но ведь должно быть иначе, или нет?


 
RDA ©   (2003-06-22 12:04) [2]

Сори, второй текс запроса для RefreshSQL.


 
RDA ©   (2003-06-23 09:02) [3]

Поднимаю вопрос


 
Zacho ©   (2003-06-23 09:11) [4]

А так и должно быть. Запись уже есть в кэше датасета - и исчезнуть она может только при переоткрытии запроса, или если ее удалить.


 
RDA ©   (2003-06-23 09:40) [5]

Но ведь кеш, если не ошибаюсь, настраивается. Можно ли как-то избежать переоткрытия набора?


 
Johnmen ©   (2003-06-23 09:48) [6]

А что, просто вызов Refresh не помогает ?


 
RDA ©   (2003-06-23 10:08) [7]

>>Johnmen
Нет. Я пробовал.


 
Zacho ©   (2003-06-23 10:10) [8]


> RDA © (23.06.03 10:08)

Просто сделай фильтр по этому полю.


 
RDA ©   (2003-06-23 10:30) [9]

>>Zacho
Это не решение вопроса, кроме того Johnmen смотри первый пост
Options=[poTrimCharFields,poRefreshAfterPost,poStartTransaction,poAutoFormatFields,poAllowChangeSqls]

Набор должен рефрешиться после поста автоматом.


 
Johnmen ©   (2003-06-23 10:44) [10]

Вижу. Должен. Вот только рефреш предполагает обновление одной и только одной записи, то есть select д.вернуть одну...Здесь это не так. И, видимо, придется переоткрывать.


 
RDA ©   (2003-06-23 15:01) [11]

Неужели нет другого решения?


 
Zacho ©   (2003-06-24 09:35) [12]


> RDA © (23.06.03 15:01)

А чем фильтр не устраивает ? Записи конечно никуда не исчезнут, но видно их не будет.


 
RDA ©   (2003-06-24 10:53) [13]

На запрос, удовлетворяющий условиям, наложить фильтр?


 
Zacho ©   (2003-06-24 10:57) [14]


> RDA © (24.06.03 10:53)

Filtered:=true;
и в обработчике OnFilterRecord что-то типа
Accept:=DovOrgSTATUS.AsInteger:=0;


 
RDA ©   (2003-06-24 12:49) [15]

Нет. Такое решение возмлжно при отсутсвии других. Набор рефрешится. Да.Почему не работает?


 
Zacho ©   (2003-06-24 12:51) [16]


> RDA © (24.06.03 12:49)

На этот вопрос уже ответил Johnmen © (23.06.03 10:44)



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

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

Наверх




Память: 0.5 MB
Время: 0.013 c
14-55722
r0n1n
2003-06-30 00:15
2003.07.17
Чат


1-55597
Ross
2003-07-03 13:51
2003.07.17
Создание и удаление файла


3-55426
Rel_
2003-06-24 08:48
2003.07.17
запрос SQL


14-55766
MBo
2003-06-28 10:40
2003.07.17
Выбрать стратегию...


1-55594
Брат
2003-07-03 12:13
2003.07.17
Как вызвать ошибку EOverFlow?