|
Сохранение данных Excel в базу MSSQL
|
|||
---|---|---|---|
#18+
Задача: Организовать ввод данных пользователем в шаблон с сохранением в базу данных. Структура данных в виде экселевского отчета подаваемого начальству, в частности несколько табличек на одном листе. Данные с производства, изменение визуальное шаблона не желательно. Данные заполняются в такой форме каждый день. Необходимо организовать возможность редактирования задним числом загружая данные из базы. Решение: Структура можно сказать не систематизируема, поэтому планирую сделать мапинг на техническом листе когда, каждое значение человек указывает формулой на новой строке. получая такой поток равный колличеству необходимых к сохранению данных. Макросом сделать получение по формуле адреса на рабочем листе и вставка в следующий столбец+ пронумеровать строки. Далее планируется заполнение столбцов "координат" названия типа X1 Y1 X2 Y2 X3 Y3 X4 Y4 где X1 это описание столбца по оси X например "ГАЗ" Y например "цех № 3" Эти доп. настройки нужны только в случае получения по базе дальнейшей отчетности. Макросом сделать обновление такого справочника. прямо в таком виде без цифровых значений попадающий в табличку имеющей дополнительно идентификатор шаблона и ключ. Вид таблички [id] [source] [x] [y] [x1text] [y1test] [x2text] [y2test] [x3text] [y3test] [x4text] [y4test] Далее кнопка "Сохранить" по которой в другую таблицу базы будет сохранены данные с форматом полей [ID] [Date] [Type] [Value]. Данные будут браться с технического листа по формуле соединяясь со справочником Далее в определенном поле будет выбираться дата. По кнопке загрузить будет вставка в данных по координатам полученным по формуле в 1м столбце. Мне кажется такую систему собранную на коленках можно будет потом адаптировать под любой шаблон изменя мапинг. Знание SQL у меня есть и структуру таблиц и процедур я напишу. Вопросы. Есть ли подобные решения или наработки. Было бы интересно взглянуть. Может уже есть готовый шаблон. Дальше задам вопросы к сообществу по реализации. В свою очередь обещая выложить результат сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 12:11 |
|
Сохранение данных Excel в базу MSSQL
|
|||
---|---|---|---|
#18+
Вопросы. Планирую через ADO подключаться к жестко прописанному серверу БД типа Код: vbnet 1.
Знаю про вариант полегче. когда зафиксировать место файла и сделать линк или же чере Microsoft.Jet.OLEDB.4.0 напрямую обратиться к книге поместив весь код в процедуры. но хотелось бы обеспечить большую автономность и данные передавать в конект. 1) Есть ли возможность при вызове процедуры средствами Код: vbnet 1. 2. 3.
передавать не единичное значение, а к примеру массив или временную таблицу. или же придется в цикле для каждой строчки вызывать процедуру? или может лучше динамический SQL сформировать ? 2) Для пользования ADODB.Connection. нужны ли какие ни будь драйвера ? или все есть в наборе офиса ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 13:42 |
|
Сохранение данных Excel в базу MSSQL
|
|||
---|---|---|---|
#18+
Продолжаю задаваться вопросами. Сделал процедуру запускаемую с передаваемыми параметрами, 135 записей и соответственно запусков и переназначения 8ми параметров отрабатывают около 25 секунд. 1) На что в основном тратится время в этой простейшей операции ? вот код Код: 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. 33. 34. 35. 36. 37.
я конечно не включил закрытие конектов и прочие обнуления. 2) Есть ли ограничение на исполняемый запрос в виде 4000 символов переменной текст? Может лучше сгенерировать кучу insert и одним запросом отправить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2012, 14:36 |
|
Сохранение данных Excel в базу MSSQL
|
|||
---|---|---|---|
#18+
сделал. может кому понадобится. Пара слов 1 Скрипт создания базы данных с таблицами и процедурами в архиве 2 В файле excel настраивается мапинг, а именно с первого листа который имеет не тронутую форму, на 2й и 3й листы настраивается ссылка в 1ю строчку просто =Форумла указывающая на поле в 1м листе. Затем кнопка "Актуализировать ссылки" он в соседнее поле вставит адрес и пронумерует. Затем кнопка "Актуализировать справочник" Он в табличку справочник загонит адреса ссылкок и их номера. В макросе необходимо исправить 1) реквизиты сервера и логина, и входной параметр процедуры который по идее должен разделять разные отчеты в случае ипользования одной базы для нскольких файлов. 3 3й лист настраивается так же. За исключением что он предназначен для текстовых значений 4 Все скрывается и отдается пользователю, который на основном листе имееет 4 кнопки -1 выбор даты -2 загрузка из базы данных за выбранную дату -3 обовление накопительных для вновь введенных данных -4 сохранение данных за выбранное число в базу. По идее если доступен сервер БД и его порт , то готовый интерфейс для доступа к данным. Из минусов почти 30с ожидание сохранение данных моих 135 строчек. Решение корявое, не судите строго, но может кто им воспользуется. Вопросы пишите отвечу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2012, 15:23 |
|
|
start [/forum/search_topic.php?author=%D0%BF%D0%BE%D1%80%D1%82%D0%B5%D1%802&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 748ms |
total: | 891ms |
0 / 0 |