![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Каким образом выйти из режима редактирования? [D7, MSSQL]
denik © (2004-03-09 11:02:00)Я в ДБГриде редактирую запись, пишу
Edit;
Post;
А из режима редактирования не выхожу. Почему?
Германн (2004-03-11 01:55:00) [1]2 Anatoly Podgoretsky © (10.03.04 09:04) [30]
> Последний раз - Post
Да. "Ждём'с "первой звезды"!". А пока - пост! :))
Anatoly Podgoretsky (2004-03-10 09:04:00) [2]denik (10.03.04 00:59) [27]
Последний раз - Post
KSergey (2004-03-10 08:56:00) [3]> denik (10.03.04 00:59) [27]
> Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
> подтвердить изменение значения этого поля? Например, представим
> DBGrid:
> Кликнул я по чекбоксу напротив ячейки Саша, значение поля
> Flag соответственно меняется на FALSE(в DBGrid`е!), но в
> БД оно не меняется, если, конечно, фокус остается в этой
> записи.
Я так и не пойму: вы код Vlad © (09.03.04 13:32) [15]пробовали? Не работает? Или что??
Правда, я бы несколько его изменил, если позволите:
if Column.FieldName='Нужное_поле' then Post;
Хотя тоже на скорую руку, может чего и путаю ;)
Германн (2004-03-10 04:30:00) [4]Что такое "поле с checkBox`ами"?
Что такое "чекбокс напротив ячейки Саша"?
Что такое "поле Flag"?
denik (2004-03-10 00:59:00) [5]Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
подтвердить изменение значения этого поля? Например, представим
DBGrid:
Name Flag
Саша TRUE
Даша TRUE
Миша FALSE
Кликнул я по чекбоксу напротив ячейки Саша, значение поля Flag соответственно меняется на FALSE(в DBGrid`е!), но в БД оно не меняется, если, конечно, фокус остается в этой записи.
Естественно, если я перейду на другую запись, тогда всё отлично.
Vlad (2004-03-09 14:59:00) [6]
> Janbolat © (09.03.04 14:49) [24]
Ты вопрос внимательно прочитай, человек не про это спрашивает, а про то как ему при изменении значения в DBGrid'e сразуотразить изменение в базе. Еще раз - причем тут комбобокс ?
VLAD-MAL (2004-03-09 14:56:00) [7]Интересно, что структура классов VCL оказывает негативное влияние на понимание начинающими программистов системы доступа к данным. Нет ощущения различия средств представления и хранения. Может, они и правы, так должно быть, но такого нет...
Janbolat (2004-03-09 14:49:00) [8]
> DenK_vrtz © (09.03.04 14:04) [19]
> >Janbolat © (09.03.04 13:58) [18]
> >не знаю будет ли рабоать
>
> не знаешь - не пиши!
а какая тебе разница
>
> Vlad © (09.03.04 14:05) [20]
>
> > Janbolat © (09.03.04 13:58) [18]
> > не знаю будет ли рабоать
> > > Vlad © (09.03.04 13:32) [15]
>
> Работать будет, возможно есть какие-то ляпы (писал не проверяя
> прямо тут). Однако ИМХО, это некорректно - писать в базу
> не давая юзеру возможности откатить изменения на клиенте.
> Сам бы я так делать не стал.
> "Такой хоккей нам не нужен" (с) кто-то из телекомментаторов
> :-)
>
> > попробуй использовать combobox
>
> А это тут причем ? Лучше уж CheckBox тогда, если поле boolean
я не говорю что твой метод не будет работать
зачем писать коды когда можно использовать простые компоненты
ведь поле боолеан содердит токо две записи и удобнее было бы использовать combobox или какое нибудь другое средство
DenK_vrtz (2004-03-09 14:12:00) [9]>sniknik © (09.03.04 14:10) [21]
ну подколол! а смысл? :)
Vlad (2004-03-09 14:12:00) [10]
> sniknik © (09.03.04 14:10) [21]
Чтож теперь не высказываться чтоли ? :-)
sniknik (2004-03-09 14:10:00) [11]проедположение или совет чтото попробовать гораздо ценее высказывания вроде
DenK_vrtz © (09.03.04 13:21) [13]
ну это просто неоценимый вклад в дискуссию (в смысле ценность = 0 ;)
Vlad (2004-03-09 14:05:00) [12]
> Janbolat © (09.03.04 13:58) [18]
> не знаю будет ли рабоать
> > Vlad © (09.03.04 13:32) [15]
Работать будет, возможно есть какие-то ляпы (писал не проверяя прямо тут). Однако ИМХО, это некорректно - писать в базу не давая юзеру возможности откатить изменения на клиенте. Сам бы я так делать не стал.
"Такой хоккей нам не нужен" (с) кто-то из телекомментаторов :-)
> попробуй использовать combobox
А это тут причем ? Лучше уж CheckBox тогда, если поле boolean
DenK_vrtz (2004-03-09 14:04:00) [13]>Janbolat © (09.03.04 13:58) [18]
>не знаю будет ли рабоать
не знаешь - не пиши!
Janbolat (2004-03-09 13:58:00) [14]не знаю будет ли рабоать
> Vlad © (09.03.04 13:32) [15]
но попробуй использовать combobox или что то типа такое
это будет лучше наверное
Anatoly Podgoretsky (2004-03-09 13:42:00) [15]очень просто может быть, вместо 123 вводим 1А3 при вводе получаем скандал.
Насчет добиться тебе уже несколько раз сказали, запись заносится методом POST
denik (2004-03-09 13:36:00) [16]>Anatoly Podgoretsky © (09.03.04 13:23) [14]
Недопустимых значений быть не может! Так я у вас никак не добьюсь каким образом сразу в БД занести значение.
Vlad (2004-03-09 13:32:00) [17]
> denik (09.03.04 13:17) [12]
Чушь конечно, но если очень надо, тогда в гриде на событие OnCellClick пишешь что-то вроде этого:
if Column.FieldName='Нужное_поле' then
begin
with Column.Field.DataSet do
begin
if not(State in [dsEdit, dsInsert]) then Edit;
FieldByName('Нужное_поле').AsBoolean:=not FieldByName('Нужное_поле').AsBoolean;
Post;
// Если была открыта транзакция - подтверждаем транзакцию.
end;
Только имей ввиду - месть пользователей будет жестока.
Anatoly Podgoretsky (2004-03-09 13:23:00) [18]Это был бы ужас, запись при каждом изменении, без возможности отменить, а сколько ошибок выдаст драйвер для недопусимых значениях просто уму не постижимо. А действия по переходу обратно в режим редактирования, это как же надо не любить пользователя.
Запись заносится в таблицу (не БД) или методом POST или автоматически переходом на другую запись, при этом тоже вызывается POST
DenK_vrtz (2004-03-09 13:21:00) [19]>denik (09.03.04 13:17) [12]
Если честно, то это глупость! ИМХО!
denik (2004-03-09 13:17:00) [20]> Vlad © (09.03.04 13:07) [11]
Оно меняется на FALSE. И моментально записывается в БД.