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

start [/forum/topic.php?fid=17&fpage=81&tid=1352241]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 418ms |

| 0 / 0 |
