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