Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
ВнизРедактирование данных в DBGrid в случае заполнения DBGrid изQuerу Найти похожие ветки
← →
Maridena © (2009-08-06 21:52) [0]Привет всем.
У меня наверное несколько глупый вопрос, но я действительно не понимаю. Пожалуйста, помогите.
В общем есть несколько таблиц, из которых собирается вьюшка, которую я отображаю в DBGrid.
Меня интересует как можно меня данные в DBGrid?
Ни в самом гриде ни в dbedit и прочих связанных с query компонентами редактирование не получается. Почитала - видимо потому, что вьюшка собирается из нескольких таблиц.
Но как мне все таки отредактировать данные-то?
Самое замечательное, если у кого-то есть просто кусок кода с примером - надеюсь разобраться по нему сама.
Нашла тут на форуме похожий вопрос, вроде как решается с помощью UpdateSQL, но примера не нашла.
Если можно решить другим способом - подскажите, плз!
Спасибо.
← →
Игорь Шевченко © (2009-08-06 21:56) [1]
> вроде как решается с помощью UpdateSQL, но примера не нашла
у UpdateSQL есть свойства InsertSQL,ModifySQL,DeleteSQL.
Запросы, указанные в этих свойствах, выполняются при DataSet.Insert/Post, DataSet.Edit/Post, DataSet.Delete
Пример кода есть в Program Files\Borland\BDS\...\Demos\Db\CachedUpd\*.*
← →
Maridena © (2009-08-06 22:02) [2]Спасибо за такой быстрый ответ.
У меня, к сожалению нет таких примеров, как по ссылкам, указанным тобой.
Program Files\Borland\BDS\...\Demos\Db\CachedUpd\*.
У меня C:\Program Files\CodeGear\RAD Studio\6.0, и образцов кода нет :(
Я в первую очередь туда полезла. В Delphi 7 было, но ее сейчас нет.
У меня проблема-то не в том, чтобы ВСТАВИТЬ данные в таблицу и т.п.
Это бы я сделала.
НО мне надо чтобы пользователь ВИДЕЛ, что он что-то там меняет в связанном с Query компоненте. А компонент этого не дает делать, потому что Query связано с неск.таблицами сразу и данные в компоненте нередактируемые.
Как человеку ввести то, что он хочет-то и видеть это?
Можешь пример кинуть? Если нетрудно, конечно.
← →
Anatoly Podgoretsky © (2009-08-06 22:15) [3]> Maridena (06.08.2009 22:02:02) [2]
Попробуй сделать поиск по диску на имя Demos
← →
Maridena © (2009-08-06 22:42) [4]Спасибо, Анатолий - хорошая идея.
Жаль только, что единственное, что нашлось - \RAD Studio\6.0\Demos\database\projects\samples\ и там про блэкфиш и про датаснап. Больше ничего нет.
Просто видимо дельфи без примеров установили :(
Может кто-нибудь просто пример сюда копи-пастнет?
Можно, конечно, сделанную выборку сохранять в таблицу, а ее вытаскивать в DBGrid и уже тогда редактировать, но это, по-моему, не лучшая идея. :)
← →
Игорь Шевченко © (2009-08-06 22:49) [5]
> Как человеку ввести то, что он хочет-то и видеть это?
Refresh сделать после Post, он увидит
Пример сделать не могу - база не озвучена
← →
Maridena © (2009-08-06 22:54) [6]Игорь, я наверное, невнятно выражаюсь, извините - сейчас у меня основная проблема в том, что человек НЕ МОЖЕТ РЕДАКТИРОВАТЬ компоненты, связанные с Query.
Есть грид, в котором данные из query (выборка из нескольких таблиц).
К этому же query привязаны несколько компонентов типа dbedit, значения которых естественно меняются при движении пользователя по записям в гриде.
Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти же dbedit"ы и видеть то, что он вводит?
← →
Maridena © (2009-08-06 22:57) [7]Да, по поводу базы данных - absolute database. (не знаю, можно ли тут ссылки кидать на сайт производителя, потому не добавляю)
← →
Игорь Шевченко © (2009-08-06 23:09) [8]
> Есть грид, в котором данные из query (выборка из нескольких
> таблиц).
> К этому же query привязаны несколько компонентов типа dbedit,
> значения которых естественно меняются при движении пользователя
> по записям в гриде.
> Как мне сделать, чтобы человек смог ВВЕСТИ данные в эти
> же dbedit"ы и видеть то, что он вводит?
Выполнить Query.Edit (для пробы присоединить к DataSource dbNavigator - там кнопки есть Add/Edit/Delete)
← →
Maridena © (2009-08-06 23:18) [9]Присоединила в тому же датасоурс, что и квери навигатор.
навигатор позволяет только перемещаться по записям. Кнопки редактирования, вставки, как и ожидалось отключены, т.к. квери составлен из неск.таблиц.
Не совсем поняла совет.
← →
Maridena © (2009-08-06 23:19) [10]Может правда надо сохранять во временной таблице и ее редактировать в гриде и через dbedit"ы? Но мне кажется, что это как-то глупо...
← →
Anatoly Podgoretsky © (2009-08-06 23:37) [11]У тебя не редактируемый набор данных, на мой взгляд лучшее решение - это редактирование в форме, данные получать из таблиц напрямую и запись обратно по таблицам, в транзакции. Грид же использовать только для навигации.
← →
Игорь Шевченко © (2009-08-06 23:38) [12]Maridena © (06.08.09 23:18) [9]
У Query надо указать CachedUpdates = true и UpdateObject = UpdateSQL, где написать тексты запросов на вставку/обновление/удаление
← →
Игорь Шевченко © (2009-08-06 23:39) [13]Anatoly Podgoretsky © (06.08.09 23:37) [11]
Да без разницы
← →
Maridena © (2009-08-06 23:40) [14]Да уж... я думала есть какой-то способ.
Просто пользователю было бы удобнее сразу смотреть и в гриде и в dbedit"ах данные и тут же их редактировать.
Хорошо, как решение, наверное, можно использовать доп.форму для редактирования текущей записи по клику на ней пользователем.
Жалко, что нельзя редактировать он зе флай.
(но я еще подумаю :))
Спасибо всем.
← →
Anatoly Podgoretsky © (2009-08-06 23:42) [15]> Игорь Шевченко (06.08.2009 23:38:12) [12]
Игорь это AbsoluteDB, а у него свои TAbsTable/TAbsQuery
← →
Maridena © (2009-08-06 23:43) [16]Да, к сожалению с абсолютом кэшед апдейтс не проходит, но спасибо все равно :)
← →
Anatoly Podgoretsky © (2009-08-07 00:02) [17]У AbsDB своя справка и свои Демос, очень приличные.
Попытаться можно сделать или через TClicentDataset, или через InMemoryTable - небольшие примеры есть в Демос. Но это за счет довольно серьезных усложнений и стоит подумать стоит ли. А так AbsDB очень мощная СУБД и позволяет делать невероятные вещи, например ДБ только из одного ехе файла, без файла БД или ReadOnly DB на CD
← →
Maridena © (2009-08-07 00:12) [18]Инмемори тэйбл - да, я уже как раз смотрю, спасибо, что надоумили меня выше в примеры посмотреть :)
← →
turbouser © (2009-08-07 00:12) [19]
> Maridena ©
Вьюхи (Views) могут (имхо, обязаны!!) быть не редактируемы.
Надо делать все по человечески...
← →
Maridena © (2009-08-07 00:16) [20]Ты прав, турбо. Вопрос в том, что делать-то ? :)
Сами ВЬЮХИ никто и не собирался редактировать - я об этом в самом начале написала.
Надо редактировать данные в таблицах.
Вопрос был как сделать так, чтобы юзеру было просто и удобно и в тоже время мне не пришлось бы городить огород.
Я уже решила - буду делать через доп.формы, как было предложено.
Сорри, если неточно донесла с самого начала.
Тему можно закрывать - всем спасибо !
← →
Игорь Шевченко © (2009-08-07 00:17) [21]Anatoly Podgoretsky © (06.08.09 23:42) [15]
Тогда извиняюсь
← →
Anatoly Podgoretsky © (2009-08-07 07:27) [22]> Игорь Шевченко (07.08.2009 00:17:21) [21]
У него свой наследник TDataset (обосновано), вот это и потребовало других наследников.
← →
имя (2009-09-17 14:24) [23]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c