![]() |
|
|
![]()
|
|
| Ace Wentura |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 19.2.2004 Где: Санкт-Петербург Репутация: нет Всего: нет |
Подскажите пожалуйста, какой принцип работы с UpdateSQL в FIBDataSet?
У меня связка: wwDBGrid - DataSource - FIBDataSet. Собираю DataSet из нескольких таблиц (запрос генерирую программно). Хочу сделать изменение данных (только Update), но не могу поять как он (Update) работает. Спасибо |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
в такои ситуации запрос на изменение данных придется саставлять самому.
|
|||
|
||||
| Ace Wentura |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 19.2.2004 Где: Санкт-Петербург Репутация: нет Всего: нет |
Это не проблема. Проблема в том, что я не совсем понимаю, какие именно параметры ему задавать и какие события отлавливать. (если это вообще нужно)
Сейчас не получается даже изменить данные в гриде. Почему-то возвращаются старые значения. Я грешу на отсутсвие UpdateSQL, но пока не уточню, что это такое - исправить не получится... |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
и вообше, сделаи отделную формы для вставки/редактирования/удаления. |
|||
|
||||
| Ace Wentura |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 19.2.2004 Где: Санкт-Петербург Репутация: нет Всего: нет |
Я бы рад сделать так, но в силу некоторых обстоятельств это не совсем удобно.
Приведу пример: Видели когда-нибудь Access? Надо думать, что видели. Так вот там нет отдельных форм для редактирования. А почему? Потому что при работе с большим количеством данных не совсем удобно делать лишение нажатия для открытия специальной формы на редактирование. Хотя.... Подумаю. Но вопрос остаётся в силе. Может у кого-нибудь есть ссылка на статью по этой теме или что-то в этом роде? |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Если не хочешь создавать отделую форму для редактирования/добавления, то обрабатывай события сетки.
Пользователь нажал Enter - делай запись в базу, и обновляй. |
|||
|
||||
| Vet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
У меня та же проблема, только с MS SQL Server :((
|
|||
|
||||
| Ace Wentura |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 19.2.2004 Где: Санкт-Петербург Репутация: нет Всего: нет |
Есть большое подозрение, что я не смогу отловить все события. Была надежда, что существует некое событие: окончание изменения. Тогда вопросы были бы решены автоматически. Такое есть?
И ещё, как можно заставить грид меняться буз UpdateSQL запроса? А то я пытаюсь изменять значение в гриде, но почти моментально оно возвращается в прежнее состояние. |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
об этом не раз говорилось, что компоненты для БД не содержат в себе ничего, они только рисуют содержимое таблицы. Добавлено @ 16:49 обрабатывай событие OnKeyDown сетки что-то типа
|
||||
|
|||||
| Vet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
А в FIBDataSet нет событий типа как у ADOQuery: OnWillChangeField, OnWillChangeRecord? Необязательно же ловить события Grid'a |
|||
|
||||
| Ace Wentura |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 19.2.2004 Где: Санкт-Петербург Репутация: нет Всего: нет |
Точно таких событий нет. Может есть другие, подобные. Есть например событие OnFieldChange. Мне всё равно пришлось делать через дополнительную форму с простыми датасетами. С событиями сетки - тут мне предлагали в реале отлавливать OnKeyUp и OnMouseUp. Тогда я буду знать, какое конретно в данный момент выделено поле и забивать соответсвующий Update-запрос. Может потом как-нибудь сделаю именно так. Спасибо всем. |
||||
|
|||||
| Vet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
Мне тоже пришлось так делать, т.к. никто не смог дать ответа, как делать все это через грид Странно, почему - из-за 1-ой строки (поля) открывать дополнительную форму... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |