Здравствуйте, Walker, Вы писали:
W>Здравствуйте, IT, Вы писали:
IT>>Больше заточено на бизнес-объекты. Но дописать что-то ещё проблем нет, нужны только идеи как это сделать.
W>Вообще-то если честно, то я уже там для себя поломал частично код, сделал 4 commands на объект, в нужные ф-и в качестве параметра вставил енум, определяющий какой тип команды использовать (general, insert, delete, update), ну и собсна дописал ф-и для UpdateDataset. Только вот получилось в конце-концов что-то страшное вот исходник ф-и в DbManager (потом дальше пример использования):
А можешь выслать полный код (с PrepareUpdateCommands и UpdateDataSetInternal).
А то мне тоже нужна подобная функциональность. Да и есть пара идей.
Здравствуйте, Alexds, Вы писали:
A>А можешь выслать полный код (с PrepareUpdateCommands и UpdateDataSetInternal). A>А то мне тоже нужна подобная функциональность. Да и есть пара идей.
Здравствуйте, Walker, Вы писали:
W>Здравствуйте, Alexds, Вы писали:
A>>А можешь выслать полный код (с PrepareUpdateCommands и UpdateDataSetInternal). A>>А то мне тоже нужна подобная функциональность. Да и есть пара идей.
W>Без проблем, давай адрес.
Опс. Да, забыл. alexds@yandex.ru
VD>>А нельзя эти МсБлоки прикрутить к твоей библиотеке? Если можно, то привел бы пример...
IT>Exception Managment Block прикручивать нужно к бизнес-слоям, а не к библиотекам. Вот они, например, в Cache его воткнули, а если у меня своя логика обработки исключений? Но он же ведь уже там гвоздями прибит и даже Publish вызывает.
да, да.. не стоит всех насильно пересаживать на блоки путем встраивания их в Rsdn.Data
Здравствуйте, Walker, Вы писали:
W>Здравствуйте, IT, Вы писали:
IT>>Больше заточено на бизнес-объекты. Но дописать что-то ещё проблем нет, нужны только идеи как это сделать.
W>Как-то очень длинно получилось, теперь вот думаю как это упростить. Как вариант может быть занести CommandType, CommandText и Parameters в отдельную структуру, чтобы все почище получилось и дефолты чтобы хоть какие чтобы проставлять можно было без несчетного количества перегруженных ф-й...
А как насчет такого API (в дополнении к твоей ф-ции):
Правда это будет работать при след соглашениях:
1 — В DataSet-e только одно поле первичный ключ (хотя можно добавить ф-ции с IDbDataParameter[] keyField)
2 — Если этот ключ == null , то это вставка записи
3 — Для удаление в процедуру (sql выражение) передается только ID
Вот. Что думаете?
IT — Можно ли что-то подобное добавить?
Здравствуйте, Igor Trofimov, Вы писали:
IT>>Exception Managment Block прикручивать нужно к бизнес-слоям, а не к библиотекам. Вот они, например, в Cache его воткнули, а если у меня своя логика обработки исключений? Но он же ведь уже там гвоздями прибит и даже Publish вызывает.
iT>да, да.. не стоит всех насильно пересаживать на блоки путем встраивания их в Rsdn.Data
Ты о чём?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Alexds, Вы писали:
A>Вот. Что думаете? A>IT — Можно ли что-то подобное добавить?
Насколько я понял, IT над этой библиотекой работает совсем в другую сторону, и не думаю, что в свою "официальную" версию будет включать поддержку апдейта датасетов, по крайней мере, по той схеме, как это сделал я, т.к. смотрится это криво как-то, хотя и работает IT, правильно я думаю?
А вот самому это сделать на своей версии — никаких проблем, это ж минут 15-20 работы от силы. Если у тебя вдруг не получается, могу помочь. Я это сразу не сделал, бо проект, на котором у меня это используется, работает под Access и MySql, а там процедер нема, вот за ненадобностью и не сделал
Здравствуйте, Walker, Вы писали:
W>Здравствуйте, Alexds, Вы писали:
A>>Вот. Что думаете? A>>IT — Можно ли что-то подобное добавить?
W>Насколько я понял, IT над этой библиотекой работает совсем в другую сторону, и не думаю, что в свою "официальную" версию будет включать поддержку апдейта датасетов, по крайней мере, по той схеме, как это сделал я, т.к. смотрится это криво как-то, хотя и работает IT, правильно я думаю? W>А вот самому это сделать на своей версии — никаких проблем, это ж минут 15-20 работы от силы. Если у тебя вдруг не получается, могу помочь. Я это сразу не сделал, бо проект, на котором у меня это используется, работает под Access и MySql, а там процедер нема, вот за ненадобностью и не сделал
Я бы такую вешь реализовал как дополнительную утилиту. И такм образом, что бы ее можно было пользоватеть( настраивать имена процедур и параметры ) в дизайнере
Здравствуйте, Walker, Вы писали:
W>Здравствуйте, Alexds, Вы писали:
A>>Вот. Что думаете? A>>IT — Можно ли что-то подобное добавить?
W>Насколько я понял, IT над этой библиотекой работает совсем в другую сторону, и не думаю, что в свою "официальную" версию будет включать поддержку апдейта датасетов, по крайней мере, по той схеме, как это сделал я, т.к. смотрится это криво как-то, хотя и работает IT, правильно я думаю?
А что IT скажет?
W>А вот самому это сделать на своей версии — никаких проблем, это ж минут 15-20 работы от силы.
Проблема не в том, чтобы сделать. Просто хочется общего, единого, красивого решения
Здравствуйте, Ведмедь, Вы писали:
В>Я бы такую вешь реализовал как дополнительную утилиту. И такм образом, что бы ее можно было пользоватеть( настраивать имена процедур и параметры ) в дизайнере
Может быть как утилиту, прикручивающуюся отдельно к классу и юзающую его, но как ты это представляешь в дизайнере В дизайнере ты можешь настроить состояние класса, т.е. грубо говоря параметры конструктора и инициализацию мемберов. Здесь же речь идет о вызове отдельной функции. Хотя можно сделать так же как и Command и Adapter в дизайнере, но практика (по крайней мере моя и тех, кого я знаю) показывает, что это никогда в дизайнере не настраивается. Надо ли?
Здравствуйте, Alexds, Вы писали:
W>>А вот самому это сделать на своей версии — никаких проблем, это ж минут 15-20 работы от силы. A>Проблема не в том, чтобы сделать. Просто хочется общего, единого, красивого решения
Так я ж про это и говорю — общее и единое есть, а вот красивости нет
Здравствуйте, Alexds, Вы писали:
A>Проблема не в том, чтобы сделать. Просто хочется общего, единого, красивого решения
А надо ли всё под одну гребенку? Так и будет враппер на враппере сидеть и враппером погонять...
Здравствуйте, Walker, Вы писали:
W>Здравствуйте, Ведмедь, Вы писали:
В>>Я бы такую вешь реализовал как дополнительную утилиту. И такм образом, что бы ее можно было пользоватеть( настраивать имена процедур и параметры ) в дизайнере
W>Может быть как утилиту, прикручивающуюся отдельно к классу и юзающую его, но как ты это представляешь в дизайнере В дизайнере ты можешь настроить состояние класса, т.е. грубо говоря параметры конструктора и инициализацию мемберов. Здесь же речь идет о вызове отдельной функции. Хотя можно сделать так же как и Command и Adapter в дизайнере, но практика (по крайней мере моя и тех, кого я знаю) показывает, что это никогда в дизайнере не настраивается.
Я бы рад их настраивать в дизайнере, да вот в чем загвоздка, там нельзя настраивать какой то обощенный, не привязынный к конкретному провайдеру класс.
Надо ли?
Да надо, примерно как комманд, что то вроде этого.
А по поводу дизайнера... ведь Формы ты же ручками не создаешь в 90% случаев, ты же использвешь дизайнер. Данные о там как апдейтится таблица( а в идеале датасет с указанием того какую таблицу в какое последовательности апдейтит ) являются данными статическими. То есть их хочется сделать декларативными. А вариантов которые первые приходят на ум я виже не много — кодогенерация ( а через дизайнер это можно сделать красиво , и конфигурация ( XML, допустим )
Все руки никак не дойдут, а хотелось бы иметь для апдейта датасета что такое, что настравиваешь в дизайнере, а рантайме создаешь экземпляр и говоришь ему падейт, где два параметра — что апдейтить ( Dataset ) и куда апдейтить ( строка коннекции или обьект, через который идет апдейт, в данном случае из библиотеки Rsdb.Framework.Data.
Я думаю такой механизм был бы удобным, пока нет нового фреймвока и новой студии... там вроде есть что то подобное.
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, Ведмедь, Вы писали:
В>>Я думаю такой механизм был бы удобным, пока нет нового фреймвока и новой студии... там вроде есть что то подобное.
M>Ну это еще не повод останавливать в развитии это библиотеки. Высокоуровневое над высокоуровневум еще никто не отменял Правда, Игорь?
Отвечаю сам себе. Игоря я имел Ткачева. После написания данного поста решил выяснить, а как же по имени товарищ Ведмедь... Вот ведь совпадение!