Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Можно ли менять содержимое таблицы, если менятьг грид ADOQuery?   Найти похожие ветки 

 
12345   (2004-09-14 13:41) [0]

можно ли сделать так, чтобы если поменять данные в гриде (ADOQuery), то в таблице менялись соотв. данные?


 
Ega23 ©   (2004-09-14 13:44) [1]

Можно. Но, ИМХО, плохой стиль.


 
Sergey13 ©   (2004-09-14 13:44) [2]

Можно. Особенно если учесть что в гриде данных нет, он показывает данные таблицы.


 
12345   (2004-09-14 13:46) [3]

>Можно. Но, ИМХО, плохой стиль.
почему? как лучше это сделать?


 
Ozone ©   (2004-09-14 13:51) [4]

12345   (14.09.04 13:46) [3]

Отдельная форма для редактирования нужна, ИМХО


 
Ega23 ©   (2004-09-14 13:51) [5]

Лично я делаю отдельную форму по редактированию. 2 самых главных достоинства:
1. Выборку можно "презентабельную" делать, т.е. удобную для просмотра пользователем. Например: есть 3 таблицы - Сотрудники, Отделы и Организации. Выборка по персоналу будет включать в себя ФИО сотрудника, название отдела, название организации.
Как такую выборку редактировать в гриде?
2. Дураказащита. Сколько не бился над редактированием записей в гриде (больно специфическая задача была), а корректной дураказащиты таки не сумел сделать.


 
12345   (2004-09-14 13:53) [6]

>Отдельная форма для редактирования нужна, ИМХО

имеете ввиду dbedit"ы?


 
Ega23 ©   (2004-09-14 13:54) [7]

имеете ввиду dbedit"ы?

Лучше простые Edit"ы.


 
сергей1   (2004-09-14 21:05) [8]

с гридами вообще аккуратней надо : в клиент-серверной среде, после того как загрузил в него записи, нет никакой гарантии что эти данные актуальны - загрузил грид, пошел покурить, а в это время сосед Вася изменил там половину строк, и когда ты вернулся на место и захотел сам что-то изменить, твой грид будет ругаться трехэтажным матом.

тут надо по ситуации подходить, чтоб свести такие приколы к минимуму


 
Sergey13 ©   (2004-09-15 09:11) [9]

2[8] сергей1   (14.09.04 21:05)
Не пугай товарища, тем более выдумками.


 
Ega23 ©   (2004-09-15 09:27) [10]

Sergey13 ©   (15.09.04 09:11) [9]

Да уж какие тут выдумки...
Если открыл запрос with noLock - именно такая ситуация и будет


 
Sergey13 ©   (2004-09-15 09:31) [11]

2[10] Ega23 ©   (15.09.04 09:27)
А если открыл форму с едитами и курить ушел? Другая будет? Да и грид по этому поводу не ругается - это не его епархия. Можно и с гридом и с формой сделать и нормально и дров наломать - не зависит от средств визуализации.


 
Ega23 ©   (2004-09-15 09:34) [12]

Sergey13 ©   (15.09.04 09:31) [11]

А вот для этого надо держать в базе таблицу блокировок. И блокировать не всю таблицу, а только ДАННУЮ(!) запись. Тогда никто другой, пока он курит именно эту запись редактировать не сможет.


 
Sergey13 ©   (2004-09-15 09:36) [13]

2[12] Ega23 ©   (15.09.04 09:34)
А мое ИМХО - не надо на сервере блокировать без особой нужды. Он и сам с этим справляется неплохо. Тем более для редактирования одной записи.


 
Ega23 ©   (2004-09-15 09:50) [14]

Ты не можешь заблокировать ТОЛЬКО ОДНУ запись, играясь с isolation level. У тебя минимум страница (8К) заблокируется.


 
Sergey13 ©   (2004-09-15 10:01) [15]

2[14] Ega23 ©   (15.09.04 09:50)
Я говорю не про M$ сервер (который не знаю), а про сервер БД вообще (в Оракле например можно). Корректная работа с транзакциями и обработка ошибок решит все проблемы с блокировками и т.п. не зависимо от средств визуализации инфы. Другое дело, что проектирование и реализация программы очень зависит от условий эксплуатации (должна по крайней мере зависеть). И если предполагается, что к некоей инфе идет частое конкурентное обращение многих юзеров, то и интерфейсно это надо решать по другому нежели при "редко возможной" конкуренции.


 
Ega23 ©   (2004-09-15 10:08) [16]

Sergey13 ©   (15.09.04 10:01) [15]

Возможно ты и прав.



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
14-1095436250
Igorek
2004-09-17 19:50
2004.10.10
Проблема с сетевым принтером HP LaserJet 2300d


4-1094658891
Davinchi
2004-09-08 19:54
2004.10.10
Не получается отслеживать изменение буфера обмена


1-1096277803
DelphiLexx
2004-09-27 13:36
2004.10.10
CreateThread


3-1095134452
malaronnik
2004-09-14 08:00
2004.10.10
Напишите plz доходчиво о блокировках.


14-1095779829
}|{yk
2004-09-21 19:17
2004.10.10
Ура! Справедливое решение УЕФА