Главная страница
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.02 c
1-55510
Ш-К
2003-07-04 16:50
2003.07.17
Скроллинг листбокса.


3-55420
Vladimir_Shk
2003-06-24 08:31
2003.07.17
Обработка мыши в DBGrid


6-55708
BJValentine
2003-03-31 14:34
2003.07.17
SMS !!!


14-55840
panov
2003-07-01 15:36
2003.07.17
Удалена случайно ветка из форума


3-55394
GreenMen
2003-06-21 14:08
2003.07.17
Работа с базой данных Access из приложения