|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.02.2019, 11:03 | #1 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
Редактирование записи по указанной строчке DBGrid
Добрый день.
Есть связанные 4 таблицы, в основную таблицу main_t, пользователи (!) только заносят данные. По запросу Код:
Всё хорошо, но вот задача, как по указанной строчке в DBGrid отредактировать запись в таблице main_t? Как это правильно организовать? (случилось так, что программу с СУБД пишу впервые) |
20.02.2019, 11:08 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Вы же id не вытягиваете запросом, без идентификаторов непонятно, как Вы собираетесь строки в гриде различать. ну и непонятно (мне лично) что у Вас хранится в таблице main_t и что Вам там нужно редактировать. |
|
20.02.2019, 11:19 | #3 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
На счет ID согласен, исправлюсь.
Хранятся записи о действиях сотрудников с контрагентами: Пользователь, датавремя_начало, датавремя_конец, операция, контрагент Вот тут мне идею подкинули на счет ListView, что скажете? |
20.02.2019, 11:27 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
исправляйтесь.
Цитата:
нет. даже не так. Что именно Вы собираетесь редактировать в этой строке? А как будут добавляться новые пользователи, новые операции, новые контрагенты Вы уже решили? Так это ваше дело - чем отображать данные и как давать их редактировать. ListView подходит - берите его. Вы просто не о том думаете. Вам нужно решать задачи о бизнес-процессах - что, как и кому можно изменять. А Вы, вместо этого, выбираете инструмент, КАК это обеспечить. Это тоже нужно. Но это вторично. Во главу угла нужно ставить ТЗ. потом, согласно ТЗ, описывать логику работы. а потом уже кодировать. имхо как-то так. |
|
20.02.2019, 11:47 | #5 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
добавление в справочники ПОЛЬЗОВАТЕЛИ и КОНТРАГЕНТЫ, а так же ОПЕРАЦИИ уже организовано через другие таблицы.
Пользователь заполняет главную таблицу только внося данные о начале и концовки операции, данные по контрагентам и тд. выбираются из справочников... Вопрос в том, что как пользователю исправить свою строку внесенную ранее, к примеру пользователь хочет исправить, что он внес не ту операцию из справочника, или же время поменять, или же контрагента... КОМУ - это уже решено, для этого организована система доступа с правами пользователей. Есть справочник ПОЛЬЗОВАТЕЛИ, он связан со справочником РОЛИ ПОЛЬЗОВАТЕЛЕЙ... Так вот мне то как раз и нужно КАК! Я просто не знаю этого, это для меня новое. |
20.02.2019, 11:48 | #6 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
как из DBGrid выбрать запись для редактирования, при условии, что DBGrid заполнен с помощью ADOQuery?
Вот по-этому и спрашиваю, каким способом редактировать? Мне подсказали ListView - но почитав справку, понимаю что заполнять его придется кодом в циклах... ё-ма-ё! |
20.02.2019, 11:56 | #7 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
А вообще-то, идея с ID оччччень к стати... спасибо за подсказу...
Теперь вопрос... можно ли по действиям с записями DBGrid узнать значения ячейки? ))) OnCellClick - но как правильно получить данные? |
20.02.2019, 11:59 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
визуально - это как Вы решите. например, кнопочка "Редактировать" или банально двойной клик по строке в гриде. дальше можно открывать inplace редактором и изменять прямо в гриде. можно вынести записи под грид (см. dbNavigator) можно открыть форму редактирования - и там уже полная свобода изменять что нужно. В форме кнопки "Отменить" / "Сохранить" наверняка есть и другие варианты. Вам выбирать. в коде программы - получать событие, брать выделенную строчку из грид, получать id записи и по ней уже выводить форму, например. Цитата:
Данные находятся в наборе данных (Dataset), который связан с гридом. вот оттуда их и берите. |
||
20.02.2019, 12:05 | #9 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 228
|
Вот теперь вы меня поняли.... мне нужно получить id записи выделенной строки в гриде (аж заулыбался, так как даже сам понял) Форму выведу, это не вопрос, может у вас есть готовое решение как получить id записи выделенной в гриде?
|
20.02.2019, 12:08 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Редактирование записи выбранной в DBGrid | TYMON | C++ Builder | 4 | 28.05.2015 13:47 |
Добавление записи из одного DBGrid в другой DBGrid c помощью кнопки, а также удаление записи | Evgen7 | БД в Delphi | 20 | 16.02.2014 17:05 |
Редактирование записи, указанной в DBGrid | Utkin | БД в Delphi | 9 | 25.01.2014 20:04 |
Редактирование текущей записи Dbgrid | -=pasha=- | Общие вопросы Delphi | 9 | 19.02.2013 03:16 |
Ошибка 2105 Невозможно перейти к указанной записи | tolstoy | Microsoft Office Access | 2 | 05.03.2012 16:36 |