![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли менять содержимое таблицы, если менятьг грид ADOQuery? [D7, MSSQL]
12345 © (2004-09-14 13:41:00)можно ли сделать так, чтобы если поменять данные в гриде (ADOQuery), то в таблице менялись соотв. данные?
Ega23 (2004-09-15 10:08:00) [1]Sergey13 © (15.09.04 10:01) [15]
Возможно ты и прав.
Sergey13 (2004-09-15 10:01:00) [2]2[14] Ega23 © (15.09.04 09:50)
Я говорю не про M$ сервер (который не знаю), а про сервер БД вообще (в Оракле например можно). Корректная работа с транзакциями и обработка ошибок решит все проблемы с блокировками и т.п. не зависимо от средств визуализации инфы. Другое дело, что проектирование и реализация программы очень зависит от условий эксплуатации (должна по крайней мере зависеть). И если предполагается, что к некоей инфе идет частое конкурентное обращение многих юзеров, то и интерфейсно это надо решать по другому нежели при "редко возможной" конкуренции.
Ega23 (2004-09-15 09:50:00) [3]Ты не можешь заблокировать ТОЛЬКО ОДНУ запись, играясь с isolation level. У тебя минимум страница (8К) заблокируется.
Sergey13 (2004-09-15 09:36:00) [4]2[12] Ega23 © (15.09.04 09:34)
А мое ИМХО - не надо на сервереблокировать без особой нужды. Он и сам с этим справляется неплохо. Тем более для редактирования однойзаписи.
Ega23 (2004-09-15 09:34:00) [5]Sergey13 © (15.09.04 09:31) [11]
А вот для этого надо держать в базе таблицу блокировок. И блокировать не всю таблицу, а только ДАННУЮ(!) запись. Тогда никто другой, пока он курит именно эту запись редактировать не сможет.
Sergey13 (2004-09-15 09:31:00) [6]2[10] Ega23 © (15.09.04 09:27)
А если открыл форму с едитами и курить ушел? Другая будет? Да и грид по этому поводу не ругается - это не его епархия. Можно и с гридом и с формой сделать и нормально и дров наломать - не зависит от средств визуализации.
Ega23 (2004-09-15 09:27:00) [7]Sergey13 © (15.09.04 09:11) [9]
Да уж какие тут выдумки...
Если открыл запрос with noLock - именно такая ситуация и будет
Sergey13 (2004-09-15 09:11:00) [8]2[8] сергей1 (14.09.04 21:05)
Не пугай товарища, тем более выдумками.
сергей1 (2004-09-14 21:05:00) [9]с гридами вообще аккуратней надо : в клиент-серверной среде, после того как загрузил в него записи, нет никакой гарантии что эти данные актуальны - загрузил грид, пошел покурить, а в это время сосед Вася изменил там половину строк, и когда ты вернулся на место и захотел сам что-то изменить, твой грид будет ругаться трехэтажным матом.
тут надо по ситуации подходить, чтоб свести такие приколы к минимуму
Ega23 (2004-09-14 13:54:00) [10]имеете ввиду dbedit'ы?
Лучше простые Edit'ы.
12345 (2004-09-14 13:53:00) [11]>Отдельная форма для редактирования нужна, ИМХО
имеете ввиду dbedit'ы?
Ozone (2004-09-14 13:51:00) [12]12345 (14.09.04 13:46) [3]
Отдельная форма для редактирования нужна, ИМХО
Ega23 (2004-09-14 13:51:00) [13]Лично я делаю отдельную форму по редактированию. 2 самых главных достоинства:
1. Выборку можно "презентабельную" делать, т.е. удобную для просмотра пользователем. Например: есть 3 таблицы - Сотрудники, Отделы и Организации. Выборка по персоналу будет включать в себя ФИО сотрудника, название отдела, название организации.
Как такую выборку редактировать в гриде?
2. Дураказащита. Сколько не бился над редактированием записей в гриде (больно специфическая задача была), а корректной дураказащиты таки не сумел сделать.
12345 (2004-09-14 13:46:00) [14]>Можно. Но, ИМХО, плохой стиль.
почему? как лучше это сделать?
Ega23 (2004-09-14 13:44:00) [15]Можно. Но, ИМХО, плохой стиль.
Sergey13 (2004-09-14 13:44:00) [16]Можно. Особенно если учесть что в гриде данных нет, он показывает данные таблицы.