Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.06.2015, 12:11   #1
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
Репутация: 16
По умолчанию Автоматическое сохранение в DBGridEh - Delphi

DataSet автоматически вызывает метод Post при переходе на новую запись если в старой записи были сделаны изменения
А мне нужно организовать авто сохранение даже если в ячейку внесен хоть один символ.
В каком событии можно прописать эту строчку dbgridEh1.DataSource.DataSet.post?
S_007 вне форума   Ответить с цитированием
Старый 02.06.2015, 13:36   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,762
Репутация: 2114
По умолчанию

В каком событии можно прописать эту строчку
в том которое происходит ПОСЛЕ КАЖДОГО изменения поля данных.
Как узнать какое это событие? посмотреть справку
Для тех кто не читает по-английски есть это
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 02.06.2015, 13:52   #3
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,098
Репутация: 6385
По умолчанию

Цитата:
авто сохранение даже если в ячейку внесен хоть один символ
какая цель преследуется таким действием?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 02.06.2015, 13:58   #4
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
Репутация: 16
По умолчанию

evg_m, Спасибо! К сожалению ссылка открывается кракозябрами... Событие после каждого изменения поля данных это по моему DataSource DataChange, но в этом событии при записи вызывает ошибку...

Цитата:
Сообщение от Аватар Посмотреть сообщение
какая цель преследуется таким действием?
Чтоб избежать любых кнопок сохранения
Да и строка в таблице может быть только одна, как писал в первом посте автосохранение происходит при переходе на любую другую которой может не быть
делал по нажатию энтэра - но это не подходит

Последний раз редактировалось Stilet; 02.06.2015 в 15:13.
S_007 вне форума   Ответить с цитированием
Старый 02.06.2015, 14:18   #5
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,762
Репутация: 2114
По умолчанию

Цитата:
К сожалению ссылка открывается кракозябрами...
поставьте кодировку страницы windows-1251.
Цитата:
но в этом событии при записи вызывает ошибку...
и какую же?
Цитата:
Чтоб избежать любых кнопок сохранения
Для этого достаточно просто при ЛЮБОМ переходе записи (или закрытии) (а не при каждом чихе) проверить состояние набора данных и выполнить (при необходимости) Post.
А если пользователь НЕЧАЯННО нажал что-то и СОВСЕМ НЕ ХОТЕЛ это сохранять?
Ситуация из жизни.
на форме есть
редактируемая таблица (та в которой все сохраняется само)
и есть поле ввода данных для поиска данных.

пользователь пытается что найти(заполнить поле поиска)
НО! по невнимательности(оплошности) ЗАБЫЛ перевести фокус ввода на поле фильтра.
Т.е. ИЗМЕНИЛ данные которые НЕ НАДО было менять.
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 02.06.2015, 14:28   #6
S_007
Форумчанин
 
Регистрация: 22.11.2014
Сообщений: 109
Репутация: 16
По умолчанию

Ошибку вызывало то что я не делал проверку на EditMode

Код:

 if (ADOTable4.State in dsEditModes) then
 begin
       dbgridEh3.DataSource.DataSet.post;
 end;

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

Вы все правильно написали что пользователь может случайно зацепить...
Я про это думал...
В стоке, в каждом из столбцов будут только Комбо боксы ручного ввода символов в строке не будет

Читать книжки некогда, методом тыка перепробовал все события из DataSource - не записывает в строку выбранное из комбобокса такое подозрение как будто не успевает.
Вы будете сейчас долго и громко смеяться, но я дошол до такого гемора
в событии DataSource DataChange поднимаю флаг что в сроке произошли изменения и в отдельном потоке по этому флагу делаю dbgridEh1.DataSource.DataSet.post, так все работает...
Но это же извращение как я понимаю, думаю что есть у ADO свои стандартные средства или я не прав?
Если есть то подскажите если знаете, книги читать буду потом

Последний раз редактировалось Stilet; 02.06.2015 в 15:15.
S_007 вне форума   Ответить с цитированием
Старый 03.06.2015, 11:37   #7
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,762
Репутация: 2114
По умолчанию

Цитата:
Если есть то подскажите если знаете, книги читать буду потом
Книгу по ссылке надо не читать, а листать, и постоянно, особенно в тот момент когда хочется задать вопрос на форуме.
Использовать как справочник (каковым она и является) по функциям компонентам методам и свойствам.
возможно нужное вам свойство найдется и в самом TDataSet если возьмете на себя труд ознакомиться с его свойствами, методами
в Delphi справке почти на каждой страничке есть ДВЕ замечательные "кнопки" это
  • See Also (смотри также) список тем близко связанных с данной
  • Example (пример) использования данного свойства и там часто тоже можно подглядеть близкие (или сопутствующие) методы (свойства).

P.S. Все что мы знаем, мы знаем из справок и книг, а книги пишутся на основе справок.
__________________
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 03.06.2015 в 11:39.
evg_m вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при добавлении новой записи в dbgrideh автоматическое отмечивание галочкой scroyler БД в Delphi 2 23.02.2012 12:27
Сохранение всех данных в бд через DBGrideh postaveche БД в Delphi 0 15.09.2010 19:53
Автоматическое сохранение даты Nomiko БД в Delphi 3 21.05.2009 18:21
Автоматическое сохранение AndreichSB Microsoft Office Access 1 04.01.2007 00:15


19:51.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru