|
|
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
По определенным причинам (слишком много полей в таблицах >100 и "многословные" имена полей, да и просто удобно :) ) в проекте использовал типизированный датасет. Теперь заказчик просит, что бы я дал возможность добавлять и удалять поля в таблицах. :( Прога уже имеет приличный размер и все выгоды от TableAdapter использованы (директ методы и т.д.). Очень много где отключаются - подключаются события адаптера и т.д. Предлагаю варианты: 1. Не трогать базовые таблицы (тем самым оставляя Датасет как есть, тем более что базовая часть таблицы модификации не подлежит). Создать сателлитные таблицы для подверженных изменениям таблиц, связать один к одному. После Fill TableAdapterом расширить DataTable включив туда поля из сателлитной таблицы и сгенерировать недостающие поля для интерфейсных элементов (поля обрабатываются тривиально)). При Update TableAdapterом вызвать Update для таблицы сателлита в транзакции. 2. ЕАВ для новых полей. 3. Дать возможность менять структуры базовых таблиц, при Fill сравнить имеющийся и настоящие схемы таблиц оставляя настоящий и сгенерировать дополнительные запросы для обновления. см п.1. 4. Переписать прогу заменив типизированный датасет на нетипизированный и дать возможность изменить структуры базовых таблиц. :( Что еще можно придумать, что бы не делать п.4? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2007, 15:13 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Числю себя за спеца по типизированному датасету. Он применим только при фиксированной структуре таблиц! Это со одной стороны, а с другой желание удалять добавлять поля таблицы это нечто! Там где переменная структура нужно пользоваться SqlCommandBuilder очень удобен! Скажем текст вставки для заранее неизвестной такблицы выглядит так Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2007, 15:38 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Эх, Билли, поиск показал, что первый раз коммандбилдер использован 15.10.2003. И на самом деле типизированный датасет и таблеадаптер не так уж итипизированы. Никакой защиты от обмана в типизированных датасетах нету. Так же динамически генеришь запрос, суешь таблеадаптеру и он спокойно (по умолчанию :)) меняет схему дататейбла и спокойно апдейдит. Плохо что я использовал директ методы. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2007, 17:48 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
И не так хорош коммандбилдер, при ручных джойнах замахаешься выкидывать ключи сателлитов. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2007, 17:50 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовИ не так хорош коммандбилдер, при ручных джойнах замахаешься выкидывать ключи сателлитов. :( Это верно отчасти, если заранее таблица неизвестна, то builder даёт способ, если надо строить то конечно проще из таблиц DataSet добавить\ удалиь колонку а текст запроса самому нарисовать + связать параметры с новыми колонками. Интересно, какой класс в отвечает за разборку sql? Тогда проще было бы жить в "open schema situations" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2007, 12:19 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Этот типизированный датасет мне все нервы выел ( Все выглядело хорошо в рекламных туториалах - типа клик и все. Проблемы возникли при развитии и сопровождении, при активно мутирующих таблицах - типизрованный датасет не катит. Его идеология, сделал быстро и забыл. На первых порах обходился сателлитными таблицами и генерацией вьюшек, но потом апдейд реальной базы стал довольно таки ощутим. Плюнул и переписал. имхо четвертый вариант все-таки дешевле, чем придумывать все новые и новые костыли. но мне конечно не надо было апдейтить сто полей :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2007, 19:10 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
DB2Adventurer_Этот типизированный датасет мне все нервы выел ( Все выглядело хорошо в рекламных туториалах - типа клик и все. Проблемы возникли при развитии и сопровождении, при активно мутирующих таблицах - типизрованный датасет не катит. Его идеология, сделал быстро и забыл. На первых порах обходился сателлитными таблицами и генерацией вьюшек, но потом апдейд реальной базы стал довольно таки ощутим. Плюнул и переписал. имхо четвертый вариант все-таки дешевле, чем придумывать все новые и новые костыли. но мне конечно не надо было апдейтить сто полей :)) Я так и решил, переписываю потихонько адаптеры. А вьюшки мне тоже не разрешают. :) Низзя почему то. Приходится в памяти делать, но Линкю тоже низзя. Эх жизть моя - жестянка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2007, 20:01 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов DB2Adventurer_Этот типизированный датасет мне все нервы выел ( Все выглядело хорошо в рекламных туториалах - типа клик и все. Проблемы возникли при развитии и сопровождении, при активно мутирующих таблицах - типизрованный датасет не катит. Его идеология, сделал быстро и забыл. На первых порах обходился сателлитными таблицами и генерацией вьюшек, но потом апдейд реальной базы стал довольно таки ощутим. Плюнул и переписал. имхо четвертый вариант все-таки дешевле, чем придумывать все новые и новые костыли. но мне конечно не надо было апдейтить сто полей :)) Я так и решил, переписываю потихонько адаптеры. А вьюшки мне тоже не разрешают. :) Низзя почему то. Приходится в памяти делать, но Линкю тоже низзя. Эх жизть моя - жестянка. Интересно что многие переписывают Adapter, в каком направлении вы это сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 17:39 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Я наверное неправильно выразился - просто меняю таблеадаптер на обычный там где не совсем невмоготу, а где ничего меняю коммандколлекшн и не пользуюсь директ методами. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 18:13 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Вариант 4, я его всегда с самого начала выбираю. Сахават Юсифов , вы знаете, как я вас уважаю :) (с)Ильф и Петров, "Золотой теленок" , но сто полей в таблице!!! У вас уникальный стиль! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 10:41 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
i seeВариант 4, я его всегда с самого начала выбираю. Сахават Юсифов , вы знаете, как я вас уважаю :) (с)Ильф и Петров, "Золотой теленок" , но сто полей в таблице!!! У вас уникальный стиль! Врядли это личный стиль. Часто система пишется для существования в базе с другой системой - типа SAP, Priority, или еще что... а там 100 полей - это так, средняя табличка. И поля убирать и добавлять в базу возможно стандатным интерфейсом (не MS Enterprise). В частности, в SBO есть такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 12:05 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовЯ наверное неправильно выразился - просто меняю таблеадаптер на обычный там где не совсем невмоготу, а где ничего меняю коммандколлекшн и не пользуюсь директ методами. :) А в чём конкретно неудобство от типизированного датасета? Я ещё не разу не слышал разумных соображений! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:46 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
i seeВариант 4, я его всегда с самого начала выбираю. Сахават Юсифов , вы знаете, как я вас уважаю :) (с)Ильф и Петров, "Золотой теленок" , но сто полей в таблице!!! У вас уникальный стиль! 100 полей, это только базовая часть этих таблиц (и то каждый день подкидывают по несколько новых "базовых"). Задача специфическая. Вкраце. Есть объекты и море их характеристик-свойств. Объекты могут быть классифицированы разными способами (лес деревьев, со спецалгоритмами конструирования и расформации). Каждое свойство имеет массив свойств. Значения этих свойств явялется массивом. Каждое значени ссылается на источник (со своими характеристиками) этих сведений о значениях. Каждому объекту пользователем может быть динамически прикреплен (откреплен, переименован) "показатель" - запись с многими альтернативами. :) Всю эту фигню надо показать в едином графе для анализа. Анализ особый, допустим какие-то агрегаты вычислимы, а какие то устанавливаются вручную, какие-то именно агрегируются, а другие распределяются. :) Таких графов много. Между графами имеются отношение типа - объект эквивалентен ветке объектов и т.д. Использование вью запрещено (да и мало толку). Большинство полей имеют размерность - nvarchar(MAX). :) А начинаются так с 250 знаков. :) Усе это будет работать (частично работает) через удаленный доступ. Так что - таков заказ. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:46 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Bill Great Сахават ЮсифовЯ наверное неправильно выразился - просто меняю таблеадаптер на обычный там где не совсем невмоготу, а где ничего меняю коммандколлекшн и не пользуюсь директ методами. :) А в чём конкретно неудобство от типизированного датасета? Я ещё не разу не слышал разумных соображений! Да хотя бы в том, что нет метода - регенерация. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:47 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
D129Врядли это личный стиль. Часто система пишется для существования в базе с другой системой - типа SAP, Priority, или еще что... а там 100 полей - это так, средняя табличка. И поля убирать и добавлять в базу возможно стандатным интерфейсом (не MS Enterprise). В частности, в SBO есть такое. Да, тут тоже самое. И интерфейс такой тоже имеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 14:48 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов Да хотя бы в том, что нет метода - регенерация. :) То есть как нет? У меня полей не так уж много, но именно то что, после добавления поля на сервере в таблицу можно открыть типизированный датасет, в нём открыть главный селект и отметить новые поля, после чего все запросы перегенерятся. Впрочем вы и так всё это знаете! Может вы о другом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 15:48 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовТак что - таков заказ. :) Ужос! Не ГИС, случаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 17:11 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Bill Great Сахават Юсифов Да хотя бы в том, что нет метода - регенерация. :) То есть как нет? У меня полей не так уж много, но именно то что, после добавления поля на сервере в таблицу можно открыть типизированный датасет, в нём открыть главный селект и отметить новые поля, после чего все запросы перегенерятся. Впрочем вы и так всё это знаете! Может вы о другом? Это в рантайм? Если да, то точно не знал. :( Я вручную меняю все запросы, а директ методы не могу (вернее думал, что это невозможно и потому не смотрел). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 17:40 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов Bill Great Сахават Юсифов Да хотя бы в том, что нет метода - регенерация. :) То есть как нет? У меня полей не так уж много, но именно то что, после добавления поля на сервере в таблицу можно открыть типизированный датасет, в нём открыть главный селект и отметить новые поля, после чего все запросы перегенерятся. Впрочем вы и так всё это знаете! Может вы о другом? Это в рантайм? Если да, то точно не знал. :( Я вручную меняю все запросы, а директ методы не могу (вернее думал, что это невозможно и потому не смотрел). Просто не видел там таких событий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 17:41 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
i see Сахават ЮсифовТак что - таков заказ. :) Ужос! Не ГИС, случаем? Межотраслевой баланс для планеты. :) Без смеха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 17:42 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовМежотраслевой баланс для планеты. :) Без смеха. А заказчик кто? Боюсь даже предположения высказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 18:56 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
VLA Сахават ЮсифовМежотраслевой баланс для планеты. :) Без смеха. А заказчик кто? Боюсь даже предположения высказать... Ну, не господь бог, конечно, но амбиций хватает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 19:15 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
:) Практика - критерий истины © Кант И., Маркс К., Ленин В. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 19:23 |
|
||
|
TableAdapter
|
|||
|---|---|---|---|
|
#18+
Сахават, скинь мне на мой ящик свои координаты (те, что указаны в твоем профиле, устарели, наверное). Есть предложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 19:43 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35020866&tid=1352488]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 410ms |

| 0 / 0 |
