Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Хотелось бы посоветоваться с народом вот по какому вопросу Приложение разбито на tiers - GUI, BLL, DAL - по-русски говоря - юзер интерфейс, бизнес уровень, дата аксес лэер. На GUI формочки байндятся к typed Datasets - которые определены на бизнес уровне. DAL реализует заполнения и обновления датасетов, причем DAL как я понимаю должен работать с нетипизировыанными датасетами, дабы быть независимым от BLL Например есть у меня typed dataset - dsProductList Я создаю его экземпляр на форме, дальше передаю ссылку на него в BLL метод ProductManagerList.Fill(ByRef ds as dsProductList) ProductManagerList в свою очередь вызывает метод из DAL - который работает уже с нетипизированным датасетами ProductDAL.Fill(ByRef ds as DataSet) который в свою очередь использует хранимую процедуру вызывающую например вот это: SELECT * FROM Product Все это нормально работает, однако если я позже добавлю новые колонки в мою БД таблицу Product - я увижу их в гриде моей формы. Невзирая на то, что их нет в описании схемы моего typed dataset на бизнес уровне. Я так понимаю это проиходит потому, что в DAL я передю свой typed Dataset по ссылке как не typed. И DAL метод радостно заполняет его всем что приходит из БД, схема в данном случае игнорируется. Возникает вопрос, я что-то делаю совершенно неправильно? Или так оно и должно быть а работу с датасетами надобно организовывать как-то по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 18:04 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
SM... который в свою очередь использует хранимую процедуру вызывающую например вот это: SELECT * FROM Product Все это нормально работает, однако если я позже добавлю новые колонки в мою БД таблицу Product ... Не писать SELECT * FROM Product , а отбирать только те колонки, которые нужны - это в первую очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 18:08 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
опробуй поиграться с DataAdapter.MissingSchemaAction (по умолчанию там Add, т.е. Adds the necessary columns to complete the schema ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 18:11 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Я использую Microsoft Application Data Blocks, метод FillDataset если я ничего не путаю. Настроек адаптера в этом методе нет. Или все же есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 19:29 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov SM... который в свою очередь использует хранимую процедуру вызывающую например вот это: SELECT * FROM Product Все это нормально работает, однако если я позже добавлю новые колонки в мою БД таблицу Product ... Не писать SELECT * FROM Product , а отбирать только те колонки, которые нужны - это в первую очередь. И как это я сам не догадался :) На самом деле пример упрощен, хранимка используется для несколькиз целей, в разных случая необходимы разные колонки и как я понимаю следующий совет будет - а не написать ли разные хранимки для всяких разных случаев? :) ЗЫ - и чарджить клиента за каждую отдельную хранимку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 19:35 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
2 SM в этом случае - увы. у MS в data block это не предусмотрено. если только доопределить самому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 19:49 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
SM Alexey Kudinov Не писать SELECT * FROM Product , а отбирать только те колонки, которые нужны - это в первую очередь И как это я сам не догадался :) На самом деле пример упрощен, хранимка используется для несколькиз целей, в разных случая необходимы разные колонки и как я понимаю следующий совет будет - а не написать ли разные хранимки для всяких разных случаев? :) Это отнюдь не плохая практика на самом деле. Разные процедуры для "для всяких разных случаев". Но даже если у вас одна ХП возвращает разные наборы данных для разных случаев, них вы ведь возвращаете только те колонки, которые вам нужны ? Так в чем проблема, если в таблице появится новая колонка ? Если она не нужна - не возвращайте ее. Или у вас есть одна универсальная выборка "на все случаи жизни", а на клиенте вы из нее "нарезаете" то, что вам нужно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 19:55 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov[quot]Это отнюдь не плохая практика на самом деле. Разные процедуры для "для всяких разных случаев". Но даже если у вас одна ХП возвращает разные наборы данных для разных случаев, них вы ведь возвращаете только те колонки, которые вам нужны ? Так в чем проблема, если в таблице появится новая колонка ? Если она не нужна - не возвращайте ее. Или у вас есть одна универсальная выборка "на все случаи жизни", а на клиенте вы из нее "нарезаете" то, что вам нужно ? На самом деле я с Вами совершенно согласен, я никогда не буду вытаскивать большие объемы ненужных данных, с другой стороны в моем предыдущем проекте было 10 девелоперов и каждому были нужны хранимки причем часто очень похожие по функциональности, но отличающиеся именно наборами колонок. В результате к концу проекта мы имели порядка 2000 хранимок. Теперь представьте какой это был фан все это мэинтейнить :) В моем конкретном случае к примеру в одном месте мне нужен список продуктов с CategoryID, в другом - без всяких категорий. Выкачка лищних 4 байтов на 500 продуктов в win app и со 100 мегабитной сеткой мне погоды не составит, зато я экономлю на методе DAL, ObjectManager и фасада. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 20:14 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Стр2 SM в этом случае - увы. у MS в data block это не предусмотрено. если только доопределить самому какой все таки гадкий этот микрософт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 20:17 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
Как вариант - в гриде прописать стиль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 20:58 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
V. MotchulskyКак вариант - в гриде прописать стиль. А грид у меня очень умный, ComponentOne -ский. Судя по всему он автоматически добавляет появившиеся в источнике данных новые колонки в свою коллекцию колонок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2004, 02:25 |
|
||
|
Заполнение Dataset
|
|||
|---|---|---|---|
|
#18+
SM А грид у меня очень умный, ComponentOne -ский. Судя по всему он автоматически добавляет появившиеся в источнике данных новые колонки в свою коллекцию колонок. Если прописан стиль а грид продолжает добавлять столбцы - то это глупый грид :-) SM Все это нормально работает, однако если я позже добавлю новые колонки в мою БД таблицу Product - я увижу их в гриде моей формы. Невзирая на то, что их нет в описании схемы моего typed dataset на бизнес уровне. Используйте: Код: plaintext 1. или Код: plaintext 1. SM Я использую Microsoft Application Data Blocks, метод FillDataset если я ничего не путаю. Настроек адаптера в этом методе нет. Или все же есть? Насколько я помню [Data Blocks] поставляется в исходных кодах так что любую отсутствующую функциональность можно добавить. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2004, 07:42 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32724677&tid=1438213]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 354ms |

| 0 / 0 |
