файл в базу
От: mumu  
Дата: 25.11.04 10:14
Оценка:
Подскажите как разумнее всего реализовать в NET такую задачу:
есть файл(текстовый) его надо перевести в БД(MS SQL).
формат файла не простой: по сути в нем три таблицы связанных
отношениями один-ко-многим.
хочется сделать так: файл выгрузить в рваный массив,
массив выгрузить в набор данных и слить данные в источник.
но, не могу найти как реализовать выгрузку массива в DataSet.
А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?
Re: файл в базу
От: S_Ivanov Россия  
Дата: 25.11.04 11:06
Оценка:
Здравствуйте, mumu, Вы писали:

M>Подскажите как разумнее всего реализовать в NET такую задачу:

M>есть файл(текстовый) его надо перевести в БД(MS SQL).
M>формат файла не простой: по сути в нем три таблицы связанных
M>отношениями один-ко-многим.
M>хочется сделать так: файл выгрузить в рваный массив,
M>массив выгрузить в набор данных и слить данные в источник.
M>но, не могу найти как реализовать выгрузку массива в DataSet.
M>А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?

Мы решали аналогичную задачу — требовалось загружать данные из текстовых файлов ПФР в базу, а после обработки базы выгружать обратно в текст формата ПФР. Написали пару классов, один из которых читает данные из файла в типизированный датасет, а другой пишет из датасета в файл. Ну а забросить датасет в базу или считать в него данные из базы — это можно даже не обсуждать.
Естественное ограничение такого решения — все данные грузятся в память, поэтому гигабайтные файлы могут вызвать проблему . Однако для ПФР это не критично, т.к. у них текстовые файлы соответствуют "пачкам", а в одной пачке не может быть больше 200 человек.
Re[2]: файл в базу
От: mumu  
Дата: 25.11.04 11:42
Оценка:
Здравствуйте, S_Ivanov, Вы писали:


S_I>..Написали пару классов, один из которых читает данные из файла в типизированный датасет, а другой пишет из датасета в файл...


не моглы бы вы по-подробней объяснить как вы читали данные из файла в датасет ?
дело в том, что у меня создан массив с данными из файла , а я не знаю можно ли его
разом выгрузить в датасет.
скажите какими вы пользовались методами для чтения данных из файла в датсет.
Re[3]: файл в базу
От: S_Ivanov Россия  
Дата: 25.11.04 14:28
Оценка:
Здравствуйте, mumu, Вы писали:

M>не моглы бы вы по-подробней объяснить как вы читали данные из файла в датасет ?

M>дело в том, что у меня создан массив с данными из файла , а я не знаю можно ли его
M>разом выгрузить в датасет.
M>скажите какими вы пользовались методами для чтения данных из файла в датсет.

Все тривиально — чтение строк через StreamReader.ReadLine и разбор ручками.

Думаю, что лучше отправить вам по почте свои классы. Опубликуйте свой e-mail в своем профиле или напишите на мой адрес (есть в моем профиле).

Если у кого-нибудь еще есть интерес, сообщите на мой e-mail — или вышлю персонально, или выложу на rsdn
Re[3]: файл в базу
От: Аноним  
Дата: 25.11.04 18:33
Оценка:
Задача на типа перловской и решается лучше всего построчным разбором и парсингом через регекс, именованные группы кстати очень помогают.
Затем мэпинг из этих именованных групп в поля таблицы в датасете.
Все можно описать во внешнем файле, не забивая код никакими лишними алгоритмами разбора.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: файл в базу
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.11.04 10:03
Оценка:
Здравствуйте, mumu, Вы писали:

M>хочется сделать так: файл выгрузить в рваный массив,

M>массив выгрузить в набор данных и слить данные в источник.
M>но, не могу найти как реализовать выгрузку массива в DataSet.

А почему бы сразу не писать в DataSet?
... << RSDN@Home 1.1.4 beta 3 rev. 236>>
AVK Blog
Re[2]: файл в базу
От: mumu  
Дата: 28.11.04 11:20
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А почему бы сразу не писать в DataSet?


потому, что .. я даже не представляю как это возможно воплотить в реальность...
файл текстовый, но юниксовый, поэтому читаю его как бинарный.
структура примерно такая
[заголовок]\n
[блок_1][запись1]...[запись n]\n
...
[блок_m][запись1]...[запись l]\n
три таблицы в типизированном датасете
заголовок 1->8 блок 1->8 запись
...
думаете , можно предварительно не разбирать файл ?
Re: файл в базу
От: Merle Австрия http://rsdn.ru
Дата: 28.11.04 11:31
Оценка:
Здравствуйте, mumu, Вы писали:

M>А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?

А почему именно под .Net?
В MSSQL'е есть чудная утилита bcp.exe и не менее чудная команда bulk insert, которые замечательным образом работают с текстовыми файлами в пакетном режиме...
На крайняк есть еще OleDB-шный интерфейс IRowsetFastLoad, для той же цели..
... [ RSDN@Home 1.1.4 rev 0 ]
Мы уже победили, просто это еще не так заметно...
Re[2]: файл в базу
От: mumu  
Дата: 28.11.04 11:57
Оценка:
Здравствуйте, Merle, Вы писали:

M>А почему именно под .Net?

в познавательных целях
M>В MSSQL'е есть чудная утилита bcp.exe и не менее чудная команда bulk insert, которые замечательным образом работают с текстовыми файлами в пакетном режиме...
здесь мне не хватает опыта и информации,нет примеров.может подскажите
где можно найти ?
M>На крайняк есть еще OleDB-шный интерфейс IRowsetFastLoad, для той же цели..
спасибо, сейчас посмотрю..
Re[3]: файл в базу
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.11.04 14:55
Оценка:
Здравствуйте, mumu, Вы писали:

AVK>>А почему бы сразу не писать в DataSet?


M>потому, что .. я даже не представляю как это возможно воплотить в реальность...


Т.е. как в массив знаешь, а как в DataSet нет?
... << RSDN@Home 1.1.4 beta 3 rev. 236>>
AVK Blog
Re[4]: файл в базу
От: mumu  
Дата: 28.11.04 16:23
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>Т.е. как в массив знаешь, а как в DataSet нет?


как файл в датасет не знаю
Re[3]: файл в базу
От: Merle Австрия http://rsdn.ru
Дата: 28.11.04 19:51
Оценка:
Здравствуйте, mumu, Вы писали:

M>здесь мне не хватает опыта и информации,нет примеров.может подскажите

M>где можно найти ?
http://msdn.microsoft.com/library/en-us/adminsql/ad_impt_bcp_2e5s.asp
... [ RSDN@Home 1.1.4 rev 0 ]
Мы уже победили, просто это еще не так заметно...
Re[4]: файл в базу
От: mumu  
Дата: 29.11.04 10:55
Оценка:
Здравствуйте, Merle.

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