|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Добрый день друзья! Стоит задача написать Локальную кассу для удаленных магазинов (в основном все работают через терминал, но часто стала пропадать связь, так что поставили задачу обеспечения работы кассы локально). Сам интерфейс работы кассы уже написал и все работает. Осталось решить задачу синхронизации данных. Вернее полная очистка локальных таблиц лежащих в MDB файле (номенклатура товаров, штрих-коды, скидки, карты и т.п.) и новая загрузка их из полученного xml файла. Не как не могу решить эту казалось бы простую задачу(вернее хочется решить ее красиво, без перечисления всех таблиц и полей). что-то типа: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
в newTa.Fill(imp_ds.Tables(1)) выходит ошибка --------------------------- Локальная касса --------------------------- 13 - Не удалось привести тип объекта "System.Data.DataTable" к типу "TovarDataTable". --------------------------- ОК --------------------------- Структура таблиц в Базе и XML одинаковая. З.Ы. Прошу сильно не пинать, но только начал писать на .NET и никак не могу понять смысла и как использовать DataSet ))) Может вообще не так действовать надо..?? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 05:00 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_Alex, MSSQL и ORACLE предоставляют широкий набор для работы с XML. А для загрузки\выгрузки данных лучше использовать BCP.EXE для MSSQL, а для ORACLE SQLLDR.EXE (если файл данных очень большой, например 80 гб, то с XML вы его вряд ли загрузите :) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 09:05 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Roman Mejtes, ну еще лучше использовать ETL ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 09:06 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Я сомневаюсь, что локальная касса наколотит данных на 80 Гб. В случае MSSQL я бы просто использовал ХП, принимающую XML, и внутри разбирающую его через XQuery (или sp_xml_preparedocument/OPENXML - в ряде случаев они работают быстрее). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 09:31 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Ну и как бы да, если MSSQL, и позволяет версия(>=2008), лучше использовать табличный тип данных (SqlParameter с типом SqlDbType.Structured вполне принимает в качестве значения DataTable). Плюс, как вариант, можно посмотреть в сторону SqlXmlBulkLoad . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 09:42 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Roman MejtesZ_Alex, MSSQL и ORACLE предоставляют широкий набор для работы с XML. А для загрузки\выгрузки данных лучше использовать BCP.EXE для MSSQL, а для ORACLE SQLLDR.EXE (если файл данных очень большой, например 80 гб, то с XML вы его вряд ли загрузите :) ) Со стороны сервера файл XML итак формируется на MS SQL 2008. Я говорю про то, как его загрузить на локальном компе в базу MS Access ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 10:05 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
MS SQL 2008 стоит на главном сервере, который ведет складской учет и учет в магазинах. В удаленных магазинах и хотим поставить кассу на .Net + данные хранящиеся в МS ACCESS чтобы только могли делать продажи и потом опять же XML файлом выгружать продажи за день на сервер по FTP или mail ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 10:09 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Roman Mejtes(если файл данных очень большой, например 80 гб, то с XML вы его вряд ли загрузите :) ) Да хоть терабайт. Ридером читаешь файл, вообще никаких проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 10:37 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_Alex, Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2015, 11:27 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныZ_Alex, Код: c# 1. 2. 3. 4. 5.
Спасибо большое! Это именно то что нужно! для всех таблиц в Базе получился вот такой маленький код Код: vbnet 1. 2. 3. 4. 5. 6.
Оcталась одна проблема, как дальше заставить этот тепизированный датасет залить все данные в реальный DataSource (таблицу MDB) из памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2015, 04:48 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Неужели ни у кого нет мыслей по этому вопросу. Зачем нужен вообще этот Dataset если такой геморрой его записать обратно в базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 07:55 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_AlexЯ говорю про то, как его загрузить на локальном компе в базу MS Access что-то я сомневаюсь, что в аксессную базу 80 гигов влезет ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 08:53 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
ИзопропилZ_AlexЯ говорю про то, как его загрузить на локальном компе в базу MS Access что-то я сомневаюсь, что в аксессную базу 80 гигов влезет Там 80 гигов и нету. Максимум 15-20 мегабайт ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2015, 09:08 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Блин, неужели никому не приходилось полностью обновлять таблицу на сервере, предварительно обработав ее (пакетно) в Dataset? Зачем он вообще нужен, ели получить в него данные проще простого, а записать обратно в таблицу на сервере нет готовых методов? тем более у типизированного.. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 11:52 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_AlexБлин, неужели никому не приходилось полностью обновлять таблицу на сервере, предварительно обработав ее (пакетно) в Dataset? Зачем он вообще нужен, ели получить в него данные проще простого, а записать обратно в таблицу на сервере нет готовых методов? тем более у типизированного..Что значит нет готовых методов? DataAdapter.Update Method ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:24 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
skyANAZ_AlexБлин, неужели никому не приходилось полностью обновлять таблицу на сервере, предварительно обработав ее (пакетно) в Dataset? Зачем он вообще нужен, ели получить в него данные проще простого, а записать обратно в таблицу на сервере нет готовых методов? тем более у типизированного..Что значит нет готовых методов? DataAdapter.Update Method Бррр.. совсем ничего не вкурю.. беру по ссылке которую Вы привели прям оттуда пример. В нем очищаю таблицу. Т.е в тот пример (который написали мелкомягкие) добавил две строчки очистки таблицы Код: vbnet 1. 2.
запускаю, функция выполняется, таблица в датасурсе не очищается )) Код: vbnet 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. 28. 29. 30. 31. 32.
Может я не правильно задачу описал. Если совсем коротко, то у меня в памяти есть Типизированный DataSet с таблицами. В таблицах есть данные. Надо ПОЛНОСТЬЮ заменить все данные в DataSource на данные из Dataset. Хеелппп!! Простыми способами уже давно бы это сделал, но хочется сделать как то по правильному что-ли. Смысла DataSet вообще никак понять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2015, 10:43 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_Alex, а Вы внимательно читайте статью по ссылке. Где Вы там вызов Clear() и AcceptChanges() увидели, там чёрным по белому написано, что: Calling the AcceptChanges method or AcceptChanges method will commit all changes in the DataSet or DataTable. If either of these methods are called before the Update method is called, no changes will be committed when the Update method is called , unless further changes have been made since AcceptChanges or AcceptChanges was called. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2015, 11:01 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Z_AlexБлин, неужели никому не приходилось полностью обновлять таблицу на сервере, предварительно обработав ее (пакетно) в Dataset? Немного изменил свой кусок кода. Код: c# 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2015, 12:18 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
Cat2, Да спасибо. Примерно так и сделал. С помощью Command очищаю таблицы и вставляю в цикле записи. Методы Clear, fill и другое копирование данных так и не получилось у меня прикрутить ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2015, 02:17 |
|
Перенос данных из XML в БД через Dataset
|
|||
---|---|---|---|
#18+
т.е вот так. Может кому пригодится. Код: vbnet 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. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2015, 02:25 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1401714]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 328ms |
total: | 486ms |
0 / 0 |