Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизКаким образом выйти из режима редактирования? Найти похожие ветки
← →
denik (2004-03-09 11:02) [0]Я в ДБГриде редактирую запись, пишу
Edit;
Post;
А из режима редактирования не выхожу. Почему?
← →
sniknik © (2004-03-09 11:11) [1]может потому что там где ты это делаеш в него и входить не нужно. но кода чтобы точно понять привел явно недостаточно.
← →
Desdechado © (2004-03-09 11:12) [2]datasource проверь autoedit
← →
Janbolat © (2004-03-09 11:17) [3]
> sniknik © (09.03.04 11:11) [1]
> может потому что там где ты это делаеш в него и входить
> не нужно. но кода чтобы точно понять привел явно недостаточно.
Полностью согласен. поставь вопрос по другому (по-конкретнее)
← →
denik (2004-03-09 11:31) [4]В общем мне нужно менять в одном из полей флаг на True или False.
Когда в ДБГриде я нажимаю на соответствующее поле он меняется, но в БД не записывается. Изменяется он только тогда, когда фокус из этой ячейки перешел на другую.
← →
Janbolat © (2004-03-09 11:39) [5]а что тебя так не устраивает?
попробуй событие дбгрида ONENTER или другое какое нибудь событие
← →
Anatoly Podgoretsky © (2004-03-09 11:48) [6]Пока ты не ушел с поля никакой записи еще нет, ты можешь отменить редактирование на данном этапе. Не понятно раз ты работает в гриде, то зачем делаешь edit/post?
← →
denik (2004-03-09 12:43) [7]>Anatoly Podgoretsky ©
>Пока ты не ушел с поля никакой записи еще нет, ты можешь >отменить редактирование на данном этапе.
Так каким образом, кликнув по ячейке сразу добавить значение в БД?
← →
Vlad © (2004-03-09 12:46) [8]
> denik (09.03.04 12:43) [7]
Ну кликнул ты по ячейке, тем самым перевел DataSet в состояние dsEdit. Новое значение еще не ввел.
Что должно по-твоему добавиться в БД ?
← →
Janbolat © (2004-03-09 12:53) [9]я как-то непонял зачем использовать такой метод? и так все хорошо
← →
denik (2004-03-09 13:02) [10]>Vlad © (09.03.04 12:46) [8]
Кликнув по ячейки должно сразу добавиться TRUE или FALSE.
← →
Vlad © (2004-03-09 13:07) [11]
> denik (09.03.04 13:02) [10]
Еще раз.
Вот есть у тебя грид. Ты видишь ячейку в которой написано, допустим, True. Это значение уже есть в базе. Затем ты кликаешь мышкой на ячейку.
Что должно произойти ?
← →
denik (2004-03-09 13:17) [12]> Vlad © (09.03.04 13:07) [11]
Оно меняется на FALSE. И моментально записывается в БД.
← →
DenK_vrtz © (2004-03-09 13:21) [13]>denik (09.03.04 13:17) [12]
Если честно, то это глупость! ИМХО!
← →
Anatoly Podgoretsky © (2004-03-09 13:23) [14]Это был бы ужас, запись при каждом изменении, без возможности отменить, а сколько ошибок выдаст драйвер для недопусимых значениях просто уму не постижимо. А действия по переходу обратно в режим редактирования, это как же надо не любить пользователя.
Запись заносится в таблицу (не БД) или методом POST или автоматически переходом на другую запись, при этом тоже вызывается POST
← →
Vlad © (2004-03-09 13:32) [15]
> 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;
Только имей ввиду - месть пользователей будет жестока.
← →
denik (2004-03-09 13:36) [16]>Anatoly Podgoretsky © (09.03.04 13:23) [14]
Недопустимых значений быть не может! Так я у вас никак не добьюсь каким образом сразу в БД занести значение.
← →
Anatoly Podgoretsky © (2004-03-09 13:42) [17]очень просто может быть, вместо 123 вводим 1А3 при вводе получаем скандал.
Насчет добиться тебе уже несколько раз сказали, запись заносится методом POST
← →
Janbolat © (2004-03-09 13:58) [18]не знаю будет ли рабоать
> Vlad © (09.03.04 13:32) [15]
но попробуй использовать combobox или что то типа такое
это будет лучше наверное
← →
DenK_vrtz © (2004-03-09 14:04) [19]>Janbolat © (09.03.04 13:58) [18]
>не знаю будет ли рабоать
не знаешь - не пиши!
← →
Vlad © (2004-03-09 14:05) [20]
> Janbolat © (09.03.04 13:58) [18]
> не знаю будет ли рабоать
> > Vlad © (09.03.04 13:32) [15]
Работать будет, возможно есть какие-то ляпы (писал не проверяя прямо тут). Однако ИМХО, это некорректно - писать в базу не давая юзеру возможности откатить изменения на клиенте. Сам бы я так делать не стал.
"Такой хоккей нам не нужен" (с) кто-то из телекомментаторов :-)
> попробуй использовать combobox
А это тут причем ? Лучше уж CheckBox тогда, если поле boolean
← →
sniknik © (2004-03-09 14:10) [21]проедположение или совет чтото попробовать гораздо ценее высказывания вроде
DenK_vrtz © (09.03.04 13:21) [13]
ну это просто неоценимый вклад в дискуссию (в смысле ценность = 0 ;)
← →
Vlad © (2004-03-09 14:12) [22]
> sniknik © (09.03.04 14:10) [21]
Чтож теперь не высказываться чтоли ? :-)
← →
DenK_vrtz © (2004-03-09 14:12) [23]>sniknik © (09.03.04 14:10) [21]
ну подколол! а смысл? :)
← →
Janbolat © (2004-03-09 14:49) [24]
> 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 или какое нибудь другое средство
← →
VLAD-MAL (2004-03-09 14:56) [25]Интересно, что структура классов VCL оказывает негативное влияние на понимание начинающими программистов системы доступа к данным. Нет ощущения различия средств представления и хранения. Может, они и правы, так должно быть, но такого нет...
← →
Vlad © (2004-03-09 14:59) [26]
> Janbolat © (09.03.04 14:49) [24]
Ты вопрос внимательно прочитай, человек не про это спрашивает, а про то как ему при изменении значения в DBGrid"e сразу отразить изменение в базе. Еще раз - причем тут комбобокс ?
← →
denik (2004-03-10 00:59) [27]Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
подтвердить изменение значения этого поля? Например, представим
DBGrid:
Name Flag
Саша TRUE
Даша TRUE
Миша FALSE
Кликнул я по чекбоксу напротив ячейки Саша, значение поля Flag соответственно меняется на FALSE(в DBGrid`е!), но в БД оно не меняется, если, конечно, фокус остается в этой записи.
Естественно, если я перейду на другую запись, тогда всё отлично.
← →
Германн © (2004-03-10 04:30) [28]Что такое "поле с checkBox`ами"?
Что такое "чекбокс напротив ячейки Саша"?
Что такое "поле Flag"?
← →
KSergey © (2004-03-10 08:56) [29]> denik (10.03.04 00:59) [27]
> Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
> подтвердить изменение значения этого поля? Например, представим
> DBGrid:
> Кликнул я по чекбоксу напротив ячейки Саша, значение поля
> Flag соответственно меняется на FALSE(в DBGrid`е!), но в
> БД оно не меняется, если, конечно, фокус остается в этой
> записи.
Я так и не пойму: вы код Vlad © (09.03.04 13:32) [15] пробовали? Не работает? Или что??
Правда, я бы несколько его изменил, если позволите:if Column.FieldName="Нужное_поле" then Post;
Хотя тоже на скорую руку, может чего и путаю ;)
← →
Anatoly Podgoretsky © (2004-03-10 09:04) [30]denik (10.03.04 00:59) [27]
Последний раз - Post
← →
Германн © (2004-03-11 01:55) [31]2 Anatoly Podgoretsky © (10.03.04 09:04) [30]
> Последний раз - Post
Да. "Ждём"с "первой звезды"!". А пока - пост! :))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.03 c