Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.041 c
3-1078810518
kaginava
2004-03-09 08:35
2004.04.04
InterBase под Linux


9-1063296486
Unknown user
2003-09-11 20:08
2004.04.04
Оцените мою демку


8-1070889136
kopcap
2003-12-08 16:12
2004.04.04
NURBS и OpenGL


14-1078657527
Yegor
2004-03-07 14:05
2004.04.04
ВОПРОС!


14-1078821203
DimaF
2004-03-09 11:33
2004.04.04
Help me





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский