| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Редактирование DataSet собранного из разных таблиц |
| Автор: Ace Wentura 15.7.2005, 14:29 |
| Подскажите пожалуйста, какой принцип работы с UpdateSQL в FIBDataSet? У меня связка: wwDBGrid - DataSource - FIBDataSet. Собираю DataSet из нескольких таблиц (запрос генерирую программно). Хочу сделать изменение данных (только Update), но не могу поять как он (Update) работает. Спасибо |
| Автор: kobra 15.7.2005, 16:54 |
| в такои ситуации запрос на изменение данных придется саставлять самому. |
| Автор: Ace Wentura 15.7.2005, 17:01 |
| Это не проблема. Проблема в том, что я не совсем понимаю, какие именно параметры ему задавать и какие события отлавливать. (если это вообще нужно) Сейчас не получается даже изменить данные в гриде. Почему-то возвращаются старые значения. Я грешу на отсутсвие UpdateSQL, но пока не уточню, что это такое - исправить не получится... |
| Автор: kobra 16.7.2005, 08:15 | ||
и вообше, сделаи отделную формы для вставки/редактирования/удаления. |
| Автор: Ace Wentura 18.7.2005, 10:38 |
| Я бы рад сделать так, но в силу некоторых обстоятельств это не совсем удобно. Приведу пример: Видели когда-нибудь Access? Надо думать, что видели. Так вот там нет отдельных форм для редактирования. А почему? Потому что при работе с большим количеством данных не совсем удобно делать лишение нажатия для открытия специальной формы на редактирование. Хотя.... Подумаю. Но вопрос остаётся в силе. Может у кого-нибудь есть ссылка на статью по этой теме или что-то в этом роде? |
| Автор: Akella 18.7.2005, 15:47 |
| Если не хочешь создавать отделую форму для редактирования/добавления, то обрабатывай события сетки. Пользователь нажал Enter - делай запись в базу, и обновляй. |
| Автор: Vet 18.7.2005, 16:22 |
| У меня та же проблема, только с MS SQL Server :(( |
| Автор: Ace Wentura 18.7.2005, 16:39 |
| Есть большое подозрение, что я не смогу отловить все события. Была надежда, что существует некое событие: окончание изменения. Тогда вопросы были бы решены автоматически. Такое есть? И ещё, как можно заставить грид меняться буз UpdateSQL запроса? А то я пытаюсь изменять значение в гриде, но почти моментально оно возвращается в прежнее состояние. |
| Автор: Akella 18.7.2005, 16:44 | ||||
об этом не раз говорилось, что компоненты для БД не содержат в себе ничего, они только рисуют содержимое таблицы. Добавлено @ 16:49 обрабатывай событие OnKeyDown сетки что-то типа
|
| Автор: Vet 18.7.2005, 19:13 | ||
А в FIBDataSet нет событий типа как у ADOQuery: OnWillChangeField, OnWillChangeRecord? Необязательно же ловить события Grid'a |
| Автор: Ace Wentura 21.7.2005, 13:24 | ||||
Точно таких событий нет. Может есть другие, подобные. Есть например событие OnFieldChange. Мне всё равно пришлось делать через дополнительную форму с простыми датасетами. С событиями сетки - тут мне предлагали в реале отлавливать OnKeyUp и OnMouseUp. Тогда я буду знать, какое конретно в данный момент выделено поле и забивать соответсвующий Update-запрос. Может потом как-нибудь сделаю именно так. Спасибо всем. |
| Автор: Vet 21.7.2005, 17:18 | ||
Мне тоже пришлось так делать, т.к. никто не смог дать ответа, как делать все это через грид Странно, почему - из-за 1-ой строки (поля) открывать дополнительную форму... |