-
Хотелось, чтоб не напрямую редактировал пользователь. Стал делать простые TEdit, TStringGrid и т.п. Перед загрузкой все заполняется, по кнопке все пробегается, перезапрашивается БД, и смотрится что менялось, потом только выборочно это и апдейтится.
4й или 5й раз меняется ТЗ, опять все менять, форм много, контрлов тоже. Чувствую, могу не успеть все это "ручное" переписать "в ручную".. Но и не хочется DBAware делать.
TClientDataSet рассматриваю, но что-то не нравится, на первый взгляд. Наверное, потому что не юзал еще никогда :)
Юзать или не юзать? или что-то еще можно придумать?
-
НД - только на чтение. Из DBAware - только DBGrid + были у меня несколько вспомогательных контролов и компонентов типа DBImageList. CDS - я честно говоря не очень представляю архитектуру, где он жизненно необходим.
-
> по кнопке все пробегается, перезапрашивается БД, и смотрится > что менялось, потом только выборочно это и апдейтится. >
перезапрос убивает всю экономию от "выборочно это и апдейтится." обычный датасет + CachedUpdates.
-
Какая то БД-фобия, ИМХО.
-
> обычный датасет + CachedUpdates.
Для одного клиента - отличное решение. Для 100 - ..опа, ибо данные безнадёжно устаревают.
-
клиентов около 30. максимум.
-
> Ega23 © (28.12.10 10:49) [4]
> Для одного клиента - отличное решение. Для 100 - ..опа, > ибо данные безнадёжно устаревают.
умничко :) осталось найти технологию, - при которой устаревают небезнадежно - идеологически несовместима с обычный датасет + CachedUpdates. переоткрывать раз 0.1 сек, mssql, xml и пр. г... не предлагать
-
> клиентов около 30. максимум.
Ну я бы именно так бы и поступил. Типичная картина: форма, DBGrid, в ней - ну например какой-то справочник. НД - только для чтения. Хочешь подредактировать - дабл-клик на записи, вывалилась модальная форма. В модальную форму передался ID записи, выполнился запрос на вытаскивание актуальных на данный момент данных. Заполнились всякие Edit-ы, комбо-боксы, чек-боксы и т.д. Пользователь отредактировал как надо, нажал "Применить". Прошла проверка на валидность (ну это уже по бизнес-логике), данные обновились в базе, форма закрылась, НД в изначальной форме обновился (в любом случае, даже если "Отмена" нажали), НД спозиционировался на запись с данным ID.
-
> обычный датасет + CachedUpdates.
м-да. Как обычно, слона и не заметил. Ща одну форму переделал минут за 10 - нормально, вроде..
Спасибо!
-
> Ega23 © (28.12.10 10:49) [4] > Для 100 - ..опа, ибо данные безнадёжно устаревают.
При connected-модели доступа для 100 клиентов "опа" настанет раньше.
Вообще-то, disconnected-модель доступа была придумана для того, чтобы минимизировать нагрузку на СУБД и уменьшить взаимовлияние клиентов.
ЯХДР. 2011 год скоро. А дельфисты всё ещё эмулируют методы доступа ФоксПро.
-
Я к такому выводу (отказаться от DBAware компонент) пришел примерно на 5-й год разработки под DB. Для вывода используются TMS Unicode. Запросы на обновление формируются вручную по шаблону.
-
> Юзать или не юзать? или что-то еще можно придумать?
Что тут придумывать? Выкинуть мусор на помойку, взять VS.NET и радоваться жизни.
-
> Ega23 © (28.12.10 11:09) [7]
ну так и делал примерно. Но это ужас же..
тем более клиент еще ругается (последний раз так было), что не надо на каждый чих форму открывать новую. Вроде убедил, что так ему же лучше, но Но это ужас же.. реализовать все заново при незначительной смене тз
-
> Что тут придумывать? Выкинуть мусор на помойку, взять VS. > NET и радоваться жизни.
не, отклоняется, однозначно.
-
> Ega23 © (28.12.10 11:09) [7]
Потом это приложение отдали на поддержку другому программисту, и в стране ухудшилась криминогенная ситуация.
-
> 12 © (28.12.10 11:15) [13] > не, отклоняется, однозначно.
*пожимает плечами*
-
когда все устоится (пару месяцев будет работать без правок) обязательно все же перепишу как было. Edit, Grid и т.п. Все же так правильнее, имхо.
-
> При connected-модели доступа для 100 клиентов "опа" настанет > раньше.
А кто тебе сказал, что приложение напрямую с СУБД работает? Я про общую концепцию говорю, а она - да хоть на тонком клиенте может быть реализована.
> 12 © (28.12.10 11:10) [8] > Ща одну форму переделал минут за 10 - нормально, вроде..
Нормально, но если один пользователь одни данные поменял, другой в это время - другие, третий - третьи, то их изменений ты не увидишь. Только свои.
З.Ы. Естественно, всё зависит от задачи и от требований к системе. Я 8 лет СКУД-ами занимался, там это было (по тем ТЗ) вполне обоснованно, и даже необходимо.
-
Идея DBAware компонент была в своё время если и не хороша, то, по крайней мере, оправдана тем, что любые имеющиеся тогда альтернативы были ещё хуже. Теперь этот подход явно морально устарел.
-
> DiamondShark © (28.12.10 11:23) [18] > > Теперь этот подход явно морально устарел.
За язык тебя никто не тянул, так что давай, объясняй почему.
|