Форум: "Базы";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизНе обновляется набор данных Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c