Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть задача: Имеем некоторое множество таблиц с разной, периодически меняющейся структурой. Необходимо чтобы при выборе одной из этих таблиц данные из нее отображались пользователю и он имел бы возможность их редактировать. При добавлении новых записей часть полей должна быть предзаполнена и не может быть изменена пользователем Сейчас вывожу данные в DBGrid. Добавляю новую запись так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Приходит строка с 2 заполненными и закрытыми от редактирования полями. Остальные данные пользователь добавляет вручную. Проблема в том, что эти данные автоматически сохраняются в таблице на сервере. Где я накосоручил и как сделать, чтобы сохранение внесенных данных происходило при нажатии на кнопку "Сохранить" и накак больше? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:29 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1Где я накосоручил и как сделать, чтобы сохранение внесенных данных происходило при нажатии на кнопку "Сохранить" и накак больше? Прочитать про транзакции. А заодно и про CachedUpdates. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:42 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
а может быть, как-то перепроектировать БД, чтобы ее структура не менялась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:44 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Паганель, Вряд ли, это справочник по инструменту. По таблице на каждый тип - режущий, мерительный и т.д. У каждого типа инструмента свои параметры, общих параметров максимум 15-20%. Если валить все в одну таблицу, то получится монстр. Список параметров периодически меняяется администраторами справочника в зависимости от текущих потребностей, типа, решили что для слесарного инструмента будем хранить не только какие-то технические данные, но еще и текущую цену (вот захотелось кому-то сверху именно на слесарку получать отчеты по ценам) - ввели поле "Цена". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:58 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1Список параметров периодически меняяется администраторами справочника в зависимости от текущих потребностейа, человеком, ну это не так страшно я уж испугался что ПО на ходу создает/грохает поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:07 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Паганель, не, у меня конечно случай запущенный, но не до такой же степени))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:12 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1У каждого типа инструмента свои параметры, общих параметров максимум 15-20%. Если валить все в одну таблицу, то получится монстр. А если развернуть в EAV, получится гораздо компактнее. Но тогда придётся использовать мозги вместо DBGrid. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:15 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1Есть задача: Имеем некоторое множество таблиц с разной, периодически меняющейся структурой. Это уже безобразие. СТруктуры таблиц в БД не могут меняться в процессе эксплуатации системы. Если это так у вас, то меняй подходы. Baby1 Необходимо чтобы при выборе одной из этих таблиц данные из нее отображались пользователю и он имел бы возможность их редактировать. При добавлении новых записей часть полей должна быть предзаполнена и не может быть изменена пользователем Сейчас вывожу данные в DBGrid. Как бы редактировать таблицы напрямую, используя эти дурацкие дельфовые TTable, а не запросы (не говоря уже о хранимых процедурах) -- очень дурной тон. Т.е. настолько дурной, что ты сейчас, делая так, проектируешь условно работающую программу, так сказать, действующую модель. Переходи на запросы, а лучше ещё на запросы на вызовы хранимых процедур. В современных дельфях есть какой-то специальный объект, где ты можешь прописать запросы, которые генерируются при создании, изменении, удалении записи что-то там "TUpdateStrategy" или что-то в этом роде -- он в редакторе формы светится, его можно найти у датасета. Baby1Приходит строка с 2 заполненными и закрытыми от редактирования полями. Остальные данные пользователь добавляет вручную. Проблема в том, что эти данные автоматически сохраняются в таблице на сервере. Где я накосоручил и как сделать, чтобы сохранение внесенных данных происходило при нажатии на кнопку "Сохранить" и накак больше? Заранее спасибо! Как бы если перейдёшь на запросы, эти проблемы отпадут сами собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:28 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1Список параметров периодически меняяется администраторами справочника в зависимости от текущих потребностей, типа, решили что для слесарного инструмента будем хранить не только какие-то технические данные, но еще и текущую цену (вот захотелось кому-то сверху именно на слесарку получать отчеты по ценам) - ввели поле "Цена". Это однозначно безобразие, такого быть не должно. EAV надо в БД в таких случаях применять. Расскажи своему DB Developer или сам почитай, если это ты и есть. Ну и цены в товаре быть не должно. Она в прайслистах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:31 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovBaby1У каждого типа инструмента свои параметры, общих параметров максимум 15-20%. Если валить все в одну таблицу, то получится монстр. А если развернуть в EAV, получится гораздо компактнее. Но тогда придётся использовать мозги вместо DBGrid. DBGrid тоже можно, только совместно с мозгами, а не вместо их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:31 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Спасибо за наводку. Пойду читать про CachedUpdates, EAV (про эту штуку я вообще впервые слышу) и мозги, как альтернативу DBGrid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:32 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
MasterZiv Как бы редактировать таблицы напрямую, используя эти дурацкие дельфовые TTable, а не запросы (не говоря уже о хранимых процедурах) -- очень дурной тон. Т.е. настолько дурной, что ты сейчас, делая так, проектируешь условно работающую программу, так сказать, действующую модель. Переходи на запросы, а лучше ещё на запросы на вызовы хранимых процедур. В современных дельфях есть какой-то специальный объект, где ты можешь прописать запросы, которые генерируются при создании, изменении, удалении записи что-то там "TUpdateStrategy" или что-то в этом роде -- он в редакторе формы светится, его можно найти у датасета. Да знаю я и про процедуры, и про запросы. Только как я напишу эту чертову процедуру на обновление или вставку, если таблица постоянно меняется?! Ну если только на удаление данных, там пофигу сколько столбцов. MasterZivЭто уже безобразие. СТруктуры таблиц в БД не могут меняться в процессе эксплуатации системы. Если это так у вас, то меняй подходы. Да я бы с радостью, только этому "безобразию" лет больше, чем мне и на него столько всего завязано, что соваться страшно... Кстати, я видел вполне себе успешные коммерческие проекты, где подход к справочникам был такой-же... не иначе у нас списывали))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:39 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Baby1Только как я напишу эту чертову процедуру на обновление или вставку, если таблица постоянно меняется?!пусть принимает на вход xml и разгребает его реагируя на структуру БД а ПО пусть генерит xml также исходя из структуры БД еще можно обновляемые вьюхи попробовать или действительно EAV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:45 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Да знаю я и про процедуры, и про запросы. Только как я напишу эту чертову процедуру на обновление или вставку, если таблица постоянно меняется?! Ну если только на удаление данных, там пофигу сколько столбцов. Ещё раз, ТАБЛИЦА НЕ ДОЛЖНА МЕНЯТЬСЯ в процессе эксплуатации. Прежде, чем что-то делать с формой, добейся ЭТОГО. Не знаю, как. Да и вообще это не вопрос С++, это вопрос проектирования БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:47 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
Да знаю я и про процедуры, и про запросы. Только как я напишу эту чертову процедуру на обновление или вставку, если таблица постоянно меняется?! Ну если только на удаление данных, там пофигу сколько столбцов. Простейший вариант -- сделать на первое время вид, что новые поля не добавляются, а старые не удаляются, написать процедуры, а при изменении структуры менять и их. Это в общем-то не очень и сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:48 |
|
||
|
Редактирование данных в таблице через DBGrid
|
|||
|---|---|---|---|
|
#18+
MasterZivПростейший вариант -- сделать на первое время вид, что новые поля не добавляются, а старые не удаляются, написать процедуры, а при изменении структуры менять и их. Это в общем-то не очень и сложно. А еще код программы, нужно же в процедуру передавать что-то.... Об этом я уже и сам думал, только надеялся, что есть другой, приемлемый в настоящее время, способ... EAV конечно интересно, я оказывается это даже видел, только названия не знал, но если переходить на него "одна малюсенька доработка на 1-2 дня" (шеф)))) выльется в полное переписание всего и вся.... хотя факультативно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 14:01 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=84&tid=2020461]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 308ms |
| total: | 459ms |

| 0 / 0 |
