
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.05.2008, 15:57
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
уважаемые конферяне, пытаюсь перейти с адо на адо.нет. позвольте мне один только вопрос. могу ли я принципиально загрузить в датасет данные датаадаптером из источника А (напимер, аксесса) и потом датаадаптером из датасета их перенести в получатель Б (например, на сервер)? то есть по сути реализовать дата флоу таск? читал про такие методы датаадаптера как апдейд, инсерт/делит/комманд, но пока не понял, как вытащить данные из датасета... если у вас вдруг есть пример кода, совсем будет замечательно ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2008, 16:21
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
можешь. правда,ты еще не понял что такое датасет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.05.2008, 16:25
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
AlexeiKможешь. правда,ты еще не понял что такое датасет :) пасиб! что могу - главное. буду потихоньку разбираться. а кусочка кода для примера нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 08:36
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
уважаемые, обзавелся книжкой некоего Дэвида Сеппы по адо.нет. для примера пытаюсь из одной аксессовской базы в другую просто перенести данные из таблички в табличку. не важно, что это можно сделать средствами самого аксесса ))). создал две базы и в каждой создал по табличке ABC (Letter varchar(1), Code integer) - в табличку в первой базе внес три записи. Соотвественно, A - 65, B - 66, C- 67. Табличка во второй базе пустая. Приведенным ниже скриптом пытаюсь перенести данные. Машина код выполняет, но ничего не делает и в месседжбоксе affected rows = 0. Подскажите, в чем моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 08:55
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
Дэвид Сеппа ниче там не пишет про CommandBuilder случаем? Заюзайте его в вашем примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 09:31
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
SQL_Lamer , посмотрел. команд билдер ведь генерит запрос? запрос-то я и сам могу написать, только вот непонятно, как его потом передать методу апдейт датасета. понимаю, что прошу многого, но если несложно, можно хоть пару строк кода для примера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 09:37
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
Вот на си шарпе пример(адаптировать к VB не проблема, думаю) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 09:45
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
м-м-м... так ведь эта функция возвращает заполненный дататэйбл! это и у мну получается безо всяких командбилдеров - возможно самонадеянно, но считаю себя в вопросах sql довольно крутым парнем ))) - я вот не понимаю, почему метод апдейт у мну отрабатывает впустую. тэйблмэппинг сделать? а зачем? датаадаптер смотрит только на одну таблицу. в параметры метода передается тоже только одна. и даже пробовал добавить строку с тэйблмэппингом - результат тот же, то есть нулевой. мне б вот пример метода апдейт датасета, если можно... я могу решить задачу путем перебора записей дататэйбла, формирования текстового sql запроса и передачи его на выполнение объекту команд - но это на большом числе записей варварство - работать будет вечность... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 09:48
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
ща напишу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:05
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
вот пример работы с дата адаптером и апдейт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:21
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
по моему я понял, чего вы хотите - одним адаптером загрузить таблу, а другим воткнуть в другую базу? боюсь вас огорчить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:22
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
пожалуй, я готов согласиться, что запрос при декларации второго адаптера - безобразие. подумал, что по аналогии с адо.рекордсетом, где при открытии можно было просто указать имя таблицы, пройдет. поправил. добавил командбилдер - но не понимаю, он же не выполняет никакого метода - достаточно декларации? в примере у меня в месседжбоксах поля и значения хорошо отображаются, но вот аффектид роуз = 0. у меня принципиальное непонимание модели адо.нет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:23
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
да. именно так, реализовать по сути дата флоу таск! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:25
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
но ведь это должно быть можно сделать! так как по сути дата сет - отсоединенные данные. никак не связанные с источником - и откуда пришел апдейт, из считанного из той же таблицы или откуда-то из другой базы - ведь должно быть неважно. разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:29
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
потому - что при всей одинаковости первого и второго дата тэйблов, это все равно разные дататэйблы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:38
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
если в данном случае я: -- считаю в 2 дататэйбла данные двумя адаптерами из двух баз, -- помещу оба дататэйбла в датасет, могу ли в датасете произвести вставку из одной таблицы в другую и потом уже апдейтить? или проще попытаться "объяснить" второму адаптеру, что таблица все-таки такая же? каким образом? ну хоть общее направлене, не детально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:50
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
по моему никак вы не объясните адаптеру, что это та - же таблица :) вставку вы в цикле тока по моему можете сделать из одного дата тэйбла в другой что - нибудь вроде этого псевдокода: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 10:52
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
в смысле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:01
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
noisette что вы за сложности изобретаете? зачем вам датаТейблы если вы просто хотите перенести данные? алгоритм ваших действий таков: Код: plaintext 1. 2. 3. 4. 5. ВСЁ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:02
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
WYPMAH noisette что вы за сложности изобретаете? зачем вам датаТейблы если вы просто хотите перенести данные? алгоритм ваших действий таков: Код: plaintext 1. 2. 3. 4. 5. ВСЁ! просто человек думал, можно дата тэйблы подменить и с циклами не париться ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:05
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
несомненно. но есть сильное подозрение, что, положим, хотя бы жалкий миллион записей в цикле будет перебираться ну очень долго. нет? пока пободаюсь еще с колумнмэппингом. не может такого быть, чтобы разработчики идею апдейта вида update from inner join заменили на циклический апдейт записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:11
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
noisetteнесомненно. но есть сильное подозрение, что, положим, хотя бы жалкий миллион записей в цикле будет перебираться ну очень долго. нет? пока пободаюсь еще с колумнмэппингом. не может такого быть, чтобы разработчики идею апдейта вида update from inner join заменили на циклический апдейт записей. Вы как делаете инсерт в T - SQL? вы же пишете, что крутой парень в SQL а ежели так, то знаете, что больше одного инсерта за раз сделать нельзя Возможно есть технологии, которые инкапсулируют цикл, однако цикл в любом случае присутствует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:18
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
ну не стоит придираться так к словам ))) я понимаю, что машина все равно перебирает записи, а имел в виду, что если мы вместо уже упоминавшейся конструкции update from inner join будем использовать declare cursor for select while update ... where ... то время исполнения возрастает до безобразия. курсоры и циклы в явном виде - зло ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2008, 11:25
|
|||
|---|---|---|---|
Dataset & DataAdapter |
|||
|
#18+
В общем, подводя итог: в вашем случае я бы делал, как WYPMAH если бы это был Sql Server, а не Access, то вообще делал бы это на сервере(в аксесе не знаю, нету наверное такой возможности) Хочу вам еще книжку посоветовать на прощание - Боб Бошемин - Основы ADO.NET :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&mobile=1&tid=1352241]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 508ms |

| 0 / 0 |
