Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2017, 12:05   #1
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию Свой update для поля (решено)

Доброе время суток!

Использую TDBAdvGrid (TMS) связанный с ТADODataSet, который содержит запрос и одно вычисляемое поле.
Сама проблема: в TDBAdvGrid пользователь меняет одно из полей таблицы, но оно, естественно, не сохраняется в БД т. к. у TDBAdvGrid нет возможности узнать что и куда писать, ведь выборка содержит вычисляемое поле.
Как можно это исправить и явно задать update для строки\поля? Пытался найти пресловутые UpdateSQL/SQLUpdate/UpdateObject, но безуспешно.

Решение:
Цитата:
Сообщение от GreenWizard Посмотреть сообщение
помогло полное удаление компонента с фрейма и настройка с нуля. Теперь оно даже перерисовывается само при update\requery, без Reload\Refresh.

Последний раз редактировалось Вадим Мошев; 12.05.2018 в 13:07.
GreenWizard вне форума Ответить с цитированием
Старый 06.05.2017, 12:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Событие AfterPost или AfterEdit у датасета должно же происходить, в нем и обновляй запросом.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.05.2017, 12:36   #3
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Только у TADODataSet есть эти события. Повесил обработчик на After/Before Edit/Post/Insert - не срабатывает.
GreenWizard вне форума Ответить с цитированием
Старый 06.05.2017, 12:47   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Только у TADODataSet есть эти события
Про него и говорю. TDBAdvGrid не знаю, видимо он сам инициализирует обновление в базе, а здесь не может? А в событии датасета нужно запросиком обновить. И сам датасет тоже обновить придется. Да и внимательно события грида не помешает посмотреть, может и там есть за что зацепиться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.05.2017, 12:56   #5
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
TDBAdvGrid не знаю
И не пытайтесь узнать!) редкостная дрянь) но, увы, легаси не выпилить, поэтому ждём тех, кто с ним работал т. к. все очевидные способы я уже попробовал.
GreenWizard вне форума Ответить с цитированием
Старый 06.05.2017, 15:39   #6
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Я так и не понял причин, возможно из-за DatasetTypeAuto = False, но помогло полное удаление компонента с фрейма и настройка с нуля. Теперь оно даже перерисовывается само при update\requery, без Reload\Refresh.
GreenWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sql запрос update поля типа integer Janger SQL, базы данных 5 09.08.2016 21:37
[РЕШЕНО] WS_DISABLED для Edit'а Alexan-Dwer Win Api 2 28.03.2016 20:00
[РЕШЕНО] Как при помощи модуля CRt реализовать вывод сообщения на экран которое будет периодически менять свой цвет? baton00711 Паскаль, Turbo Pascal, PascalABC.NET 5 21.02.2016 15:20
Команда UPDATE для блоб поля через FIBPlus Lokos БД в Delphi 3 19.05.2010 08:16
Ошибка при редактировании поля (в Update) Droid БД в Delphi 4 12.07.2009 19:51