|
Из Word в SQL
|
|||
---|---|---|---|
#18+
Нужна помощь. Есть такая задача, требуется периодически копировать данные их Word-документа с множеством таблиц в MS SQL базу данных. Таблицы разные по длине, некоторые размещаются на нескольких страницах, но имеют одинаковую структуру. Но копировать данные нужно только с тех строк в которых первая ячейка не пустая и копировать из этих строк только первые два столбца и все в одну SQL-таблицу с двумя столбцами. ______________________________________ Вот ведь! ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 03:24 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
И в чем проблема? Анализируете таблицы, собираете данные, формируете набор... открываете коннект с SQL, формируете выборку, сводите, обновляете. Конечно, остается вопрос, почему исходные данные находятся именно в Вордовском формате... это такой BDSM-эксгибиционизм? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 03:36 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
AndreTMИ в чем проблема? Анализируете таблицы, собираете данные, формируете набор... открываете коннект с SQL, формируете выборку, сводите, обновляете. Алгоритм такой я представляю,вот в кодах не силен. Хотелось бы примеры, которые бы я подстроил под себя. Там наверно еще будет проблема с копированием данных из таблиц, которые на нескольких листах. Конечно, остается вопрос, почему исходные данные находятся именно в Вордовском формате... это такой BDSM-эксгибиционизм? Это не моя компетенция, файлы WORD делают другие специалисты, которые потом печатают, а им так удобнее. Ну а мне поставили задачу выводить все это на WEB-страницу. Если я закачаю все это в SQL, то выведу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 06:37 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
ram, и что именно у вас не получается? Собрать данные из ворда в рекордсет, подсоединиться к базе, обновить таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:06 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
QValDram, и что именно у вас не получается? Собрать данные из ворда в рекордсет, подсоединиться к базе, обновить таблицы? Да, собрать данные из таблиц в рекордсет, с учетом того, что они могут быть на разных листах, подсоденится к базе и записать в таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 07:25 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
Ну-у, батенька... Забесплатно такую задачку вам никто бацать не будет - ибо вменяемому программисту такой метод обработки только в страшном сне и приснится. Могу только посоветовать (если всё же будете пилить это ТЗ) - не заморачиваться с типами и записывать данные из WORD исключительно как текст. И так же выкладывать на сайт. И если вас ткнут носом в "неправильный вид даты/десятичной точки" - смело демонстрируете, что у вас всё WYSIWYG ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2012, 11:38 |
|
Из Word в SQL
|
|||
---|---|---|---|
#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.
Задача стояла переписать в SQL таблицу данные из трех первых колонок всех таблиц WORD-документа, только тех строк в которых в первой колонке встречается текст с "точкой". Ну типа 1.1, 1.2.3, 12.23.2 и т.д. Программа работает, данные переписываются, но явно код не оптимальный, поскольку соединение с базой открывается и закрывается на каждой строке таблицы. Чувствую тут надо использовать DataAdapter или что-то другое. Но вот не хватает знаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 08:28 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
ramсоединение с базой открывается и закрывается на каждой строке таблицы ну так и что мешает вынести conn.Open и сonn.Close за пределы цикла, чтобы этого не происходило? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 10:37 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
ram... Программа работает, данные переписываются, но явно код не оптимальный, поскольку соединение с базой открывается и закрывается на каждой строке таблицы. Чувствую тут надо использовать DataAdapter или что-то другое. Но вот не хватает знаний. открытие/закрытие рекордсета - нужно по-любому вынести из цикла, но ещё правильнее будет, открыть (ДО цикла) на целевой таблице рекордсет с adLockBatchOptimistic Код: vbnet 1.
в цикле - "повставлять" в него, всё, что нужно Код: vbnet 1. 2. 3. 4.
и потом уже, после цикла - отправить всё на сервер Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 11:00 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
Не факт, что производительность сильно улучшится, надо замерять. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 11:24 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
Shocker.ProНе факт, что производительность сильно улучшится, надо замерять. не спорю, тут много какие факторы могут играть роль ... (та же удалённость сервера/"толщина" канала) даже больше того - если вариант с отправкой запросов переделать на ассинхронный - то он наверняка даже "выиграет" вариант с рекордсетом - он "идеалогически" :)) более правильный при любой трабле (коннект пропал или нарушение целостности при вставке, например) - данные не пропадут, и можно, в таком случае, "разобратся" отдельно ... (CursorLocation только нужно на клиентский изменить, конечно) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 11:45 |
|
Из Word в SQL
|
|||
---|---|---|---|
#18+
Как вариант - скопить insert-ы в одну переменную и потом отправить одним execut-ом ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2012, 12:59 |
|
|
start [/forum/topic.php?fid=60&msg=38026279&tid=2157332]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 146ms |
0 / 0 |