disconnected system и ADO.NET
От: Katerinka  
Дата: 28.04.03 15:24
Оценка:
Насколько я поняла, Microsoft в ADO.NET постарались для создания рассоединенных систем. Т.е. при работе с БД в dataset создается локальная копия данных, которые мы обрабатываем, а затем в нужный момент сохраняем изменения в БД. По этому поводу у меня два вопроса:
1. действительно ли он закачивает на машину в локальную копию весь набор данных, ведь если БД огромная, то при соединении все будет конкретно подвисать.
2. есть ли такая возможность — работать все-таки так чтобы подкачивались данные по мере необходимости. например, когда мы scroll-им грид, подкачивать отображаемые данные.
Спасибо если кто ответит. Вопрос именно по ADO.NET, как это сделать другими способами не так важно
Re: disconnected system и ADO.NET
От: Akzhan Россия http://www.akzhan.midi.ru/devcorner/
Дата: 28.04.03 16:11
Оценка:
Здравствуйте, Katerinka, Вы писали:

K>Насколько я поняла, Microsoft в ADO.NET постарались для создания рассоединенных систем. Т.е. при работе с БД в dataset создается локальная копия данных, которые мы обрабатываем, а затем в нужный момент сохраняем изменения в БД. По этому поводу у меня два вопроса:

K>1. действительно ли он закачивает на машину в локальную копию весь набор данных, ведь если БД огромная, то при соединении все будет конкретно подвисать.

Извините, но это вопрос правильной архитектуры. Правильно оформленное среднее звено обязано не качать большие наборы данных. Будьте разумны, используйте фильтрацию. Например, у меня список клиентов никогда полностью не выводится, надо набрать несколько букв из имени клиента, и тогда будут выведено первые 30 записей...
С уважением,
Акжан, http://www.akzhan.midi.ru/devcorner/ — мой уголок разработчика
Re[2]: disconnected system и ADO.NET
От: Katerinka  
Дата: 28.04.03 16:22
Оценка:
A>Извините, но это вопрос правильной архитектуры. Правильно оформленное среднее звено обязано не качать большие наборы данных. Будьте разумны, используйте фильтрацию. Например, у меня список клиентов никогда полностью не выводится, надо набрать несколько букв из имени клиента, и тогда будут выведено первые 30 записей...

Меня интересует вопрос, существуют ли в ADO.NET механизмы не оффлайнового доступа к БД, для системы, которая может (и хочет) обращаться к БД, а не закачать из нее необходимые данные и аглы. Хитрые реализации программно этого дела... это понятно, что придется вытворять нечто подобное. А вообще-то не будет ли это страшным торможением в работе, если я при скроллинге по гриду или при навигации по карте буду тут же кидаться в БД и закачивать из нее новый Dataset. Кстати, а реально насколько быстро идет эта закачка данных через XML (не ошибаюсь?)?
Re[3]: disconnected system и ADO.NET
От: Andrey_N  
Дата: 28.04.03 17:10
Оценка: 8 (1)
Здравствуйте, Katerinka, Вы писали:

K>Меня интересует вопрос, существуют ли в ADO.NET механизмы не оффлайнового доступа к БД, для системы, которая может (и хочет) обращаться к БД, а не закачать из нее необходимые данные и аглы. Хитрые реализации программно этого дела... это понятно, что придется вытворять нечто подобное. А вообще-то не будет ли это страшным торможением в работе, если я при скроллинге по гриду или при навигации по карте буду тут же кидаться в БД и закачивать из нее новый Dataset. Кстати, а реально насколько быстро идет эта закачка данных через XML (не ошибаюсь?)?


DataSet, DataAdapter -- компоненты для организации того, что вы называете "оффлайном".
DataReader (и Connection + Command) -- для "онлайна" по вашей терминологии.

DataAdapter использует DataReader чтобы наполнить DataSet и Command чтобы обновлять данные на сервере БД; ни о каком XML на данном этапе речи нет.

Удачи
Re[4]: disconnected system и ADO.NET
От: Аноним  
Дата: 30.04.03 09:50
Оценка:
Здравствуйте, Andrey_N, Вы писали:

A_N>DataSet, DataAdapter -- компоненты для организации того, что вы называете "оффлайном".

A_N>DataReader (и Connection + Command) -- для "онлайна" по вашей терминологии.

A_N>DataAdapter использует DataReader чтобы наполнить DataSet и Command чтобы обновлять данные на сервере БД; ни о каком XML на данном этапе речи нет.


A_N>Удачи



За подсказку спасибо, у меня у самой эта мысль крутилась в последнее время, но если я не ошибаюсь, то при наполнении DataReader-ом dataset-а он будет закачивать по строчке и кидать в датасет. Неужели это будет быстрее если я таким способом захочу закачать всю БД. Или это стоит использовать при ограниченном выборе из БД, например подкачать первые 10 строчек, а потом добавлять по паре чтроек при помощи DataReader? Да, кстати, если об XML речь не идет, то каким образом данные перебрасываются из БД?

XML — я имела в виду способ перекачки данных из БД в dataset — насколько пишется в документации, то это эффективно, быстро, нет проблем с преобразованиями типов и т.п. Меня интересует насколько это соответствует действительности — например если я перекачиваю табличку из Oracle, где есть поле blob, сильно ли при этом в кайф идет перекачка из XML
Re[5]: disconnected system и ADO.NET
От: Andrey_N  
Дата: 30.04.03 15:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>За подсказку спасибо, у меня у самой эта мысль крутилась в последнее время, но если я не ошибаюсь, то при наполнении DataReader-ом dataset-а он будет закачивать по строчке и кидать в датасет. Неужели это будет быстрее если я таким способом захочу закачать всю БД. Или это стоит использовать при ограниченном выборе из БД, например подкачать первые 10 строчек, а потом добавлять по паре чтроек при помощи DataReader? Да, кстати, если об XML речь не идет, то каким образом данные перебрасываются из БД?


Данные всегда качаются по-строчно. Про большие объемы данных в DataSet'е вам уже написал Akzhan.

А>XML — я имела в виду способ перекачки данных из БД в dataset — насколько пишется в документации, то это эффективно, быстро, нет проблем с преобразованиями типов и т.п. Меня интересует насколько это соответствует действительности — например если я перекачиваю табличку из Oracle, где есть поле blob, сильно ли при этом в кайф идет перекачка из XML


Ссылку на документацию дайте.

Хорошим началом может послужить книга ADO.NET Step by Step.

Удачи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.