Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Обновление данных Найти похожие ветки
← →
Lamer_of_Delphi (2003-08-20 13:29) [0]Здравствуйте,
подскажите как обновить данные получаемые SQL запросом при удалении одной из записей с помощью UpdateSQL?
← →
Digitman (2003-08-20 13:36) [1]как это так
> при удалении одной из записей с помощью UpdateSQL
??
UpdateSQL подразумевает UPDATE-предложение, а не DELETE-предложение.
Для удаления же записей используется DeleteSQL.
← →
DenK_vrtz (2003-08-20 13:39) [2]как вариант просто переоткрыть запрос (close, open)
Digitman © (20.08.03 13:36) [1], он наверно имел ввиду компонент UpdateSQL :-)
← →
Lamer_of_Delphi (2003-08-20 13:42) [3]UpdateSQL - компонента с закладки БДЕ ))), у него есть свойсто DeleteSQL вот с помощью его и удаляем: данные физически удаляются, но в Гриде не обновляются...
← →
DenK_vrtz (2003-08-20 13:45) [4]1.ApplyUpdates
2.Close
3.Open
← →
Lamer_of_Delphi (2003-08-20 13:48) [5]2DenK_vrtz:
Это самое простое)))... не устраивает неужели нельзя по другому как нибудь?
← →
Zacho (2003-08-20 13:50) [6]Да все должно обновляться. Просто TUpdateSQL надо подключить к соответствующему TQuery, и удалять запись - Query.Delete;
← →
Digitman (2003-08-20 13:57) [7]
> данные физически удаляются, но в Гриде не обновляются...
разумеется) ... ведь грид никак не связан с НД, участвующим в операции удаления.
грид связан с SELECT-запросом, возвращающим некую выборку на момент запроса. Для того объекта, что реализующет у тебя Select-запрос и передает НД через DataSource в DBGrid, в общем случае после модификации можно выполнить просто метод Refresh.
← →
Lamer_of_Delphi (2003-08-20 13:57) [8]Я удаляю: UpdateSQL3.Apply(ukDelete);
сам запрос в UpdateSQL1.DeleteSQL...и не обновляется в принципе Close-Open помогает но это помоему нерационально....хотя если ничего не придумаем придется его использовать, правда должно быть какоето другое решение)))
← →
Lamer_of_Delphi (2003-08-20 14:02) [9]2Digitman:
Query1.Refresh - таблица не поддерживает эту операцию т.к. она не индексирована(((9
← →
Zacho (2003-08-20 14:05) [10]
> Lamer_of_Delphi © (20.08.03 13:57) [8]
Как делать правильно:
Берем TQuery и TUpdateSQL. В св-ве TQuery.UpdateObject указываем это TUpdateSQL. Удалить текущую запись - Query.Delete;
И все будет работать без всяких Close; Open;
← →
Lamer_of_Delphi (2003-08-20 14:11) [11]2Zacho:
1. Я так и делел...
2. Меня просто не правильно поняли, данные то обновляются - они не обновляются в Гриде)))
← →
Vlad (2003-08-20 14:14) [12]Что значит не обновляются в гриде ???
Хочешь сказать что запись из базы удаляется а в гриде остается ?
Ха... Если так, то читай Zacho © (20.08.03 14:05) [10] , причем внимательнее.
И никаких UpdateSQL3.Apply(ukDelete) !!!
← →
Lamer_of_Delphi (2003-08-20 14:18) [13]2Vlad:
Да именно это и хочу сказать, в компонентах все настроено правильно.....лана придется воспользоваться Close-Open? если ни у кого больше нет идей(((
← →
Vlad (2003-08-20 14:21) [14]Если хочешь извращнуться, попробуй после удаления вызвать метод Resync DataSet"a.
← →
Vlad (2003-08-20 14:32) [15]А вобще, ребяты, я не понимаю, как так, если запись удаляется из ДатаСета, то она соотв. должна пропадать и из грида.
Если же удалять минуя датасет, напр. как сказано выше UpdateSQL3.Apply(ukDelete), то спрашивается чего же вы хотите ? Естественно придется делать Close Open.
По другому никак...
← →
Lamer_of_Delphi (2003-08-20 14:39) [16]2Vlad:
Ну вот вопрос и разрешился однозначно - Close-Open...Всем Tnx
← →
GSV_ (2003-08-20 14:41) [17]Можен нужно еще
Query1.CashedUpdate:=true
...
изменение/удаление/вставка через Грид (все обновляется сразу)
...
Запомнить->Query1.ApplyUpdates
← →
Lamer_of_Delphi (2003-08-20 14:55) [18]2GSV:
Без Query1.CashedUpdate:=true - UpdateSQL вообще работать не будет)))
← →
DenK_vrtz (2003-08-20 14:58) [19]хитрО все у нас,Господи, главное чтобы никто не догадался!
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.007 c