Конференция "Прочее" » Уходя от DBAware, зашился. Что можно мне посоветовать?
 
  • DiamondShark © (28.12.10 11:28) [20]

    > Ega23 ©   (28.12.10 11:21) [17]
    > А кто тебе сказал, что приложение напрямую с СУБД работает?


    Да пофиг.


    > Я про общую концепцию говорю

    Какую, нахрен, концепцию? Какая, к лешему, концепция избавит от устаревания данных во время редактирования? Чо ты мОзги пудришь?
  • 12 © (28.12.10 11:32) [21]

    > Какая, к лешему, концепция избавит от устаревания данных
    > во время редактирования?

    как будто в VS.NET избавит как то
  • Ega23 © (28.12.10 11:37) [22]

    >  Какая, к лешему, концепция избавит от устаревания данных
    > во время редактирования? Чо ты мОзги пудришь?


    Не во время редактирования.
    Я открыл форму с набором данных. И ушёл сначала на перекур, потом на обед, а потом ещё куда-то. Меня не было, например, час. За это время данные были модифицированы другими пользователями. Не все, но какая-то часть. Например, 10%.
    Я вернулся и дабл-кликнул на какую-то запись. У меня в модальную форму передался ID данной записи. Из формы пошёл запрос на актуальные данные по этому ID. Они отобразились, я их отредактировал, либо вообще отмену нажал. И вот уже потом пошёл рефреш основного набора. Того, который был на 10% изменён.
  • Petr V. Abramov © (28.12.10 11:43) [23]

    > 12 ©   (28.12.10 11:32) [21]
    >
    >
    > > Какая, к лешему, концепция избавит от устаревания данных
    > > во время редактирования?
    >
    > как будто в VS.NET избавит как то

    здохнешь и отмучаешься :)
  • vuk © (28.12.10 11:50) [24]
    to Ega23 ©   (28.12.10 11:37) [22]:

    > Они отобразились, я их отредактировал, либо вообще отмену
    > нажал.

    Прально. А пока ты их редактируешь, на них должна быть блокировка поставлена, чтобы никто своими грязными ручками не лез поперек твоего редактирования.

    Собсно, у нас по такому принципу всё и живет. В обычной двухзвенке. И с обычными DB-aware. Проблем нет.
  • Ega23 © (28.12.10 11:53) [25]

    > Прально. А пока ты их редактируешь, на них должна быть блокировка
    > поставлена, чтобы никто своими грязными ручками не лез поперек
    > твоего редактирования.


    А, ну да, это тоже. Забыл написать. Типа "Эта запись редактируется Васей Пупкиным с рабочей станции Workstation".
  • DiamondShark © (28.12.10 12:50) [26]

    > Ega23 ©   (28.12.10 11:28) [19]
    > > DiamondShark ©   (28.12.10 11:23) [18]> > Теперь этот
    > подход явно морально устарел.За язык тебя никто не тянул,
    >  так что давай, объясняй почему.

    Потому что появилась явно более обобщённая и удобная модель data binding, в которой нет разницы между ДБ и не-ДБ контролами, а источником данных может быть не только датасет, но и любой объект вообще.

    В дельфи ДБ-контролы были сделаны на скорую руку, потому что ни у кого такой фичи не было, а на рынок выходить надо было. Во времена Д-1 это была действительно суперская фича, а теперь уши аврального решения торчат слишком явно.
    В ДБ-контролах нет никакой общей абстракции и единообразия.
    Так, например, ДБ-контролы не имеют общего корня наследования. Т.е., нет иерархии вида:
    TControl - TDBControl
    - TDBEdit
    - TDBDateTimePicker
    и т.д.
    Ну ладно, вывод из единого корня -- не единственный вариант построения семейств объектов. Есть, к примеру, ещё подходы агрегации, примесей, аспектов и т.п.
    Но дельфийские ДБ-контролы не тянут ни на агрегаты, ни на носители аспектов и примесей. С ними вообще нельзя обращаться каким-либо абстрагированным и унифицированным способом.
    Их БД-шность реализована тупым копипастом!
  • DiamondShark © (28.12.10 12:51) [27]

    >  А пока ты их редактируешь, на них должна быть блокировка
    > поставлена,

    Привет^Wпрощай масштабируемость.
  • DiamondShark © (28.12.10 12:55) [28]

    > Ega23 ©   (28.12.10 11:37) [22]

    Не-не-не, Дэвид Блэйн. Я предлагаю другой сценарий.

    Я кликнул запись, у меня открылась модальная форма со свежей записью, я изменил половинну полей, и только потом пошёл курить/обедать/какать/пиво пить.

    А потом вернулся и нажал "Сохранить".
  • Ega23 © (28.12.10 13:07) [29]

    > Не-не-не, Дэвид Блэйн. Я предлагаю другой сценарий.


    см. [25], я просто забыл этот момент описать.
  • Вариант (28.12.10 13:08) [30]

    > DiamondShark ©   (28.12.10 12:55) [28]
    > Я кликнул запись, у меня открылась модальная форма со свежей
    > записью, я изменил половинну полей, и только потом пошёл
    > курить/обедать/какать/пиво пить А потом вернулся и нажал "Сохранить".


    Ну вот кроме после потом пошел от ниже приведенного не увидел разницы (что и там возможно).... (Посты о блокировках и прочем пока не рассматриваю)


    > Ega23 ©   (28.12.10 11:37) [22]


    >  дабл-кликнул на какую-то запись. У меня в модальную
    > форму передался ID данной записи. Из формы пошёл запрос
    > на актуальные данные по этому ID. Они отобразились, я их
    > отредактировал, либо вообще отмену нажал


    PS:
    Для одинакового прочтения
    Я понял
    > отредактировал, либо вообще отмену нажал
    как отредактировал и сохранил, либо отмену нажал
  • 12 © (28.12.10 13:08) [31]

    > DiamondShark ©   (28.12.10 12:55) [28]


    > Я кликнул запись, у меня открылась модальная форма со свежей
    > записью, я изменил половинну полей, и только потом пошёл
    > курить/обедать/какать/пиво пить.
    > А потом вернулся и нажал "Сохранить".

    Вот и именно,
    я делал так: В обычном контрле есть что было, в новом (Форме для редактирования) что стало, а перед записью получаем новые данные в НД.

    Соответственно, имеется что поменялось мной, что не мной, что вообще не поменялось.
  • Ega23 © (28.12.10 13:11) [32]

    > Потому что появилась явно более обобщённая и удобная модель
    > data binding, в которой нет разницы между ДБ и не-ДБ контролами,
    >  а источником данных может быть не только датасет, но и
    > любой объект вообще.


    Ну TDataSet, собственно, это всего лишь абстрактный класс. Вполне можно написать TXMLDataSet, статья с Getting Started где-то тут на сайте лежит (древняя, правда, но сути не меняет).
    А из DBAware использовал только DBGrid (только для отображения). И то не родной.
  • Игорь Шевченко © (28.12.10 13:21) [33]
    Use Oracle Forms, Luke
  • Anatoly Podgoretsky © (28.12.10 13:31) [34]

    > А, ну да, это тоже. Забыл написать. Типа "Эта запись редактируется
    > Васей Пупкиным с рабочей станции Workstation".
    > <Цитата>

    Телефон такой то, палка стоит в кладовке.
  • Kerk © (28.12.10 13:34) [35]

    > Игорь Шевченко ©   (28.12.10 13:21) [33]
    >
    > Use Oracle Forms, Luke

    Как Oracle Forms позволяет взаимных блокировок избежать?
    В свое время задолбался с этим.
  • Petr V. Abramov © (28.12.10 13:38) [36]

    > DiamondShark ©   (28.12.10 12:51) [27]
    >
    >
    > >  А пока ты их редактируешь, на них должна быть блокировка
    > > поставлена,
    >
    > Привет^Wпрощай масштабируемость.
    >

    с какого перепугу?
    если куча народу ломится редактировать одно и тоже, проблема организационная, и создавать автоматизированный бардак безблагодатно. к относительно специфичечным вещам типа продажи жд-билетов, это, ессно, не относится.
  • vuk © (28.12.10 14:18) [37]
    to Petr V. Abramov ©   (28.12.10 13:38) [36]:

    > если куча народу ломится редактировать одно и тоже, проблема
    > организационная

    Именно. Ибо нефиг. Непротиворечивость и целостность данных - важнее.
  • Inovet © (28.12.10 14:49) [38]
    > [29] Ega23 ©   (28.12.10 13:07)
    > см. [25], я просто забыл этот момент описать.

    > [25] Ega23 ©   (28.12.10 11:53)
    > "Эта запись редактируется Васей Пупкиным с рабочей станции
    > Workstation"

    Статус: отошёл какать, после обедать.
  • Ega23 © (28.12.10 14:58) [39]

    > Статус: отошёл какать, после обедать.


    Не вижу причин, почему нельзя реализовать мессенджер, если такой присутствует в ТЗ.
 
Конференция "Прочее" » Уходя от DBAware, зашился. Что можно мне посоветовать?
Есть новые Нет новых   [134433   +22][b:0][p:0.001]