Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Затащить в базу 20 листов с параметрами, как?  [new]
User2155
Member

Откуда:
Сообщений: 150
Всем привет,

не уверен что в эту ветку, но все таки.
Есть база, которая считает важные показатели. Проблема в том, что для расчета надо загрузить много параметров.
Много это значит просто до жопы. Больше 20 листов экселя с разными табличками.
Как бы это затаскивать?? Шоп надежно и без кошмара.

Что пробовал.
1) Пакет SSIS.
На компьютере пользователя живет пакет SSIS, который вызывается макросом из эксель файла.
При вызове ему скармливается адрес файлика и он быстренько все импортирует.
Вариант отличный, т.к. программируется за минуту, однако после обновления Visual Studio доработка пакета оказалась невозможной. Виснет зараза и все. Что-то ему не нравится в драйверах экселя.

2) C#.
Сделал софтину на WPF. Вроде импортирует, однако способ нифига не быстрый, т.к. для каждого листочка приходится писать свой отдельный код импорта. При этом WPF в нашей конторе почти никто не знает, поэтому если я пойду в отпуск, может быть проблема. Большая проблема.

3) Макросы в экселе.
Пробовал, но плюнул. Слишком много кода получается (реально тысячи строк) и поддерживать все это в нормальном состоянии тупо не получается.

4) MS SQL Master Data Services.
Думал про него, однако у пользователя на каждый месяц свой эксель файл. Получается он должен скопировать каждую табличку из этого файла в другой файл, где работает MDS и потом пройдет импорт. Долго.

Я пока склоняюсь ко второму варианту. Программировать долго, однако работает...

Есть еще идеи?
Спасибо.
30 ноя 17, 22:01    [20996653]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Col
Member

Откуда: Торонто
Сообщений: 180
User2155,
принкуйте файл екселя к сиквелу, тогда ничего затаскивать и не надо будет.
Вот типа как:
Картинка с другого сайта.
30 ноя 17, 22:50    [20996767]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
User2155
Есть еще идеи?
5. Найти причину неработоспособности п.1
6. Написать скрипт, раздербанивающий файл на 20 отдельных csv-файлов. Далее bcp.
30 ноя 17, 22:52    [20996771]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Col
Member

Откуда: Торонто
Сообщений: 180
Драйвера для последних версий екселя вот тут:
https://www.microsoft.com/en-us/download/details.aspx?id=13255
30 ноя 17, 22:57    [20996787]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
User2155
однако после обновления Visual Studio доработка пакета оказалась невозможной. Виснет зараза и все. Что-то ему не нравится в драйверах экселя.
Не оно?

https://support.microsoft.com/en-ca/help/4041681/windows-7-update-kb4041681
Known issues in this update

Symptom

Installing this update may cause applications based on the Microsoft JET Database Engine (Microsoft Access 2007 and older or non-Microsoft applications) to fail when creating or opening Microsoft Excel .xls files. The error message is, “Unexpected error from external database driver (1). (Microsoft JET Database Engine)".

Workaround

Download and install the Microsoft Access Database Engine 2010 Redistributable, and then modify the DB connection strings in Microsoft Excel to use ACE as a provider. Example: Change Provider=Microsoft.Jet.OLEDB.4.0 to Provider=Microsoft.ACE.OLEDB.12.0.

Microsoft is working on a resolution and will provide an update in an upcoming release.
1 дек 17, 02:58    [20997160]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
User2155
Member

Откуда:
Сообщений: 150
Mind,
оч. похоже.

Насчет линкованного сервера я как-то не допер. Тоже вариант, спасибо.
1 дек 17, 09:06    [20997295]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2384
Блог
invm
User2155
Есть еще идеи?
5. Найти причину неработоспособности п.1
6. Написать скрипт, раздербанивающий файл на 20 отдельных csv-файлов. Далее bcp.
Голосую за пункт 6. Не будет геморроя при смене версий студии. Хотя решение номер раз самое технологичное и "правильное"
1 дек 17, 09:30    [20997343]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
Павел Воронцов
invm
пропущено...
5. Найти причину неработоспособности п.1
6. Написать скрипт, раздербанивающий файл на 20 отдельных csv-файлов. Далее bcp.
Голосую за пункт 6. Не будет геморроя при смене версий студии. Хотя решение номер раз самое технологичное и "правильное"
Я думал, что критерий технологической правильности - "Не будет геморроя при смене версий студии", "код будет легко понятен следующим поколениям программистов".

А то можно наделать блокчейнов, хадупов и контейнеров в облаке, будет "технологически правильно", но применимо только "полюбоваться программисту".
1 дек 17, 10:29    [20997516]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
aleks222
Guest
alexeyvg
"код будет легко понятен следующим поколениям программистов"


Это когда ты открываешь свой код через пару лет и сразу понимаешь "чего тут написано".

ЗЫ. У меня так не получается.
1 дек 17, 11:17    [20997738]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
aleks222
alexeyvg
"код будет легко понятен следующим поколениям программистов"

Это когда ты открываешь свой код через пару лет и сразу понимаешь "чего тут написано".
ЗЫ. У меня так не получается.

Что именно не получается - писать, понимать, открывать или через пару лет?
1 дек 17, 12:07    [20997922]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2384
Блог
alexeyvg
Павел Воронцов
пропущено...
Голосую за пункт 6. Не будет геморроя при смене версий студии. Хотя решение номер раз самое технологичное и "правильное"
Я думал, что критерий технологической правильности - "Не будет геморроя при смене версий студии", "код будет легко понятен следующим поколениям программистов".
"Правильное" взято в кавычки. Вообще я к SSIS хорошо отношусь, вот к студии - плохо.
1 дек 17, 12:18    [20997953]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
aleks222
alexeyvg
"код будет легко понятен следующим поколениям программистов"


Это когда ты открываешь свой код через пару лет и сразу понимаешь "чего тут написано".

ЗЫ. У меня так не получается.
Пусть не то что бы прямо "понять", но что бы можно было разобраться, самому побыстрее, чужому за приемлемое время.

Вот я сейчас правил процедурку, в итоге нужно было плюс на минус в выражении заменить ,что бы корректно работала.
Так там несколько уровней вызовов, и каждая процедура что то делает динамическим SQL, притом берут данные и записывает результат в создаваемые таблички вида [table_<GUID>]
Это жесть.

Технологичное решение для импорта такое, что бы можно было его запустить или получить возможность редактирования без долгого изучения, посмотреть на поток обработки, если обработка сложная, посмотреть промежуточные результаты, так же должна быть возможность повторить импорт, и сделать импорт на сэмпле данных, для быстрой проверки и отладки.
Вроде очевидные вещи, но, оказывается, не для всех. Скажем, встречал импорт, который нельзя повторить, на тех же данных, за тот же период (!?!?!?!)
1 дек 17, 14:41    [20998495]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
Павел Воронцов
alexeyvg
пропущено...
Я думал, что критерий технологической правильности - "Не будет геморроя при смене версий студии", "код будет легко понятен следующим поколениям программистов".
"Правильное" взято в кавычки. Вообще я к SSIS хорошо отношусь, вот к студии - плохо.
А, понял, думал, вы серьёзно :-)

Visual Studio раньше была хороша, я только на ней и работал с сиквелом, с 90х.
Но сейчас она хуже и хуже, в последней версии вообще пропала раскраска синтаксиса. Нужно что то подбирать другое :-(
1 дек 17, 14:48    [20998533]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
alexeyvg
Павел Воронцов
пропущено...
"Правильное" взято в кавычки. Вообще я к SSIS хорошо отношусь, вот к студии - плохо.
А, понял, думал, вы серьёзно :-)

Visual Studio раньше была хороша, я только на ней и работал с сиквелом, с 90х.
Но сейчас она хуже и хуже, в последней версии вообще пропала раскраска синтаксиса. Нужно что то подбирать другое :-(

у меня 17.1 всё раскрашивает
1 дек 17, 15:00    [20998578]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
TaPaK
alexeyvg
пропущено...
А, понял, думал, вы серьёзно :-)

Visual Studio раньше была хороша, я только на ней и работал с сиквелом, с 90х.
Но сейчас она хуже и хуже, в последней версии вообще пропала раскраска синтаксиса. Нужно что то подбирать другое :-(

у меня 17.1 всё раскрашивает
Microsoft Visual Studio Community 2015. В настройках для сиквела раскраска прописана.

Понятное дело, это зависит от 100500 факторов, вот это и печально. Бах, перестала раскрашивать, ничего не сделать.
При этом синтаксический анализ работает, блоки раскрывает-закрывает, интеллисенс таблицы и колонки подсказывает.

Баги никто править не будет, это сейчас не в тренде.
Установил на свежекупленный комп винды, студию, раскрашивает? Значит, всё нормально.
Вместо админов теперь девопсы - студию с виндами в виртуалку. Перестала раскрашивать, даты поехали, или что то ещё - взял новую виртуалку. А лучше каждый день брать новую.
Так что разбираться никто не будет.
+
Microsoft Visual Studio Community 2015
Версия 14.0.25431.01 Update 3
Microsoft .NET Framework
Версия 4.7.02046

Установленная версия: Community

Microsoft Visual Studio Tools for Applications 2015 00322-20000-00000-AA650
Microsoft Visual Studio Tools for Applications 2015

Visual Basic 2015 00322-20000-00000-AA650
Microsoft Visual Basic 2015

Visual C# 2015 00322-20000-00000-AA650
Microsoft Visual C# 2015

Visual C++ 2015 00322-20000-00000-AA650
Microsoft Visual C++ 2015

Visual F# 2015 00322-20000-00000-AA650
Microsoft Visual F# 2015

Пакет SDK для Windows Phone 8.0 - RUS 00322-20000-00000-AA650
Пакет SDK для Windows Phone 8.0 - RUS

ASP.NET Web Frameworks and Tools 2012.2 4.1.41102.0
For additional information, visit http://go.microsoft.com/fwlink/?LinkID=309563

ASP.NET Web Frameworks and Tools 2013 5.2.40314.0
For additional information, visit http://www.asp.net/

ASP.NET и веб-инструменты 2015.1 (Beta8) 14.1.11107.0
ASP.NET и веб-инструменты 2015.1 (Beta8)

Command Bus, Event Stream and Async Manager Merq
Provides ICommandBus, IEventStream and IAsyncManager MEF services for loosely coupled Visual Studio extension components communication and integration.

GitHub.VisualStudio 2.3.6.391
A Visual Studio Extension that brings the GitHub Flow into Visual Studio.

Python Tools for Visual Studio 2.2.50113.00
Python Tools for Visual Studio provides IntelliSense, projects, templates, Interactive windows, and other support for Python developers.

Python Tools for Visual Studio - Django Integration 2.2.50113.00
Provides templates and integration for the Django web framework.

Python Tools for Visual Studio - Profiling Support 2.2.50113.00
Profiling support for Python projects.

SQL Server Data Tools 14.0.61705.170
Microsoft SQL Server Data Tools

SQL Server Integration Services
Конструктор служб Microsoft SQL Server Integration Services
Версия 14.0.600.250

TypeScript 1.8.36.0
Средства TypeScript для Visual Studio

Xamarin 4.2.1.62 (680125b)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android 7.0.2.37 (ce955cc)
Visual Studio extension to enable development for Xamarin.Android.

Xamarin.iOS 10.2.1.5 (44931ae)
Visual Studio extension to enable development for Xamarin.iOS.

Визуализатор PreEmptive Analytics 1.2
Расширение Microsoft Visual Studio для визуализации агрегированных сводок, полученных от продуктов PreEmptive Analytics.

Диспетчер пакетов NuGet 3.4.4
Диспетчер пакетов NuGet в Visual Studio. Дополнительную информацию о NuGet см. на веб-сайте http://docs.nuget.org/.

Инструменты мобильных услуг Microsoft Azure 1.4
Инструменты мобильных услуг Microsoft Azure

Общие инструменты Windows Azure 1.8
Предоставляет общие службы для использования мобильными службами и инструментами Microsoft Azure.

Пакет средств Application Insights для Visual Studio 7.0.20622.1
Средства Application Insights для Visual Studio

Система проектов JavaScript 2.0
Система проектов JavaScript

Службы SQL Server Analysis Services 14.0.608.142
Конструктор служб Microsoft SQL Server Analysis Services
Версия 14.0.608.142

Службы SQL Server Reporting Services 14.0.608.142
Конструкторы Microsoft SQL Server Reporting Services
Версия 14.0.608.142

Языковая служба JavaScript 2.0
Языковая служба JavaScript
1 дек 17, 16:33    [20999009]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
TaPaK
у меня 17.1 всё раскрашивает
Собственно, 17.1 тоже не раскрашивает при определённых условиях.
https://stackoverflow.com/questions/42695803/sql-syntax-highlighting-in-visual-studio-2017
https://developercommunity.visualstudio.com/content/problem/12692/no-syntax-highlighting-for-sql.html

Нажимаю кнопочку установить языковый пакет, переход на страницу MS, там выбираю язык, опа - "We're sorry, this download is no longer available."
Вот оно всё так работает, через жопу.
За несколько лет ошибку не поправили, в VS 2017 тоже не поправили, и даже не послали "на ..." в обсуждении на своём же developercommunity.visualstudio.com, было бы хоть понятно.
Улыбаясь и говоря "мы работаем для вас" и "нам очень важна обратная связь".
1 дек 17, 16:52    [20999078]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
User2155
Member

Откуда:
Сообщений: 150
Col
Драйвера для последних версий екселя вот тут:
https://www.microsoft.com/en-us/download/details.aspx?id=13255

Пытался сделать софтину для импорта на C#, но получалось адово сложно. Не понимаю почему я сразу не попробовал LinkedServer???
Порядок импорта:
- создается общая папка на сервере и пользователю (SQL Server) даются на неё права;
- устанавливаем драйверы для экселя на сервак (по ссылке выше);
- добавляем LinkedServer.
EXEC sp_addlinkedserver
    @server = 'ExcelServer2',
    @srvproduct = 'Excel',
    @provider = 'Microsoft.ACE.OLEDB.12.0',
    @datasrc = 'C:\Test\excel-sql-server.xlsx',
    @provstr = 'Excel 12.0;IMEX=1;HDR=YES;'
Вот тут подробней: https://www.excel-sql-server.com/excel-import-to-sql-server-using-linked-servers.htm
- Если пользователю надо загрузить другие параметры, то тупо перезаписываем файл "excel-sql-server.xls". Сносить и заново создавать LinkedServer не нужно.

Просто и надежно.
12 янв 18, 09:03    [21099774]     Ответить | Цитировать Сообщить модератору
 Re: Затащить в базу 20 листов с параметрами, как?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
TaPaK
alexeyvg
пропущено...
А, понял, думал, вы серьёзно :-)

Visual Studio раньше была хороша, я только на ней и работал с сиквелом, с 90х.
Но сейчас она хуже и хуже, в последней версии вообще пропала раскраска синтаксиса. Нужно что то подбирать другое :-(

у меня 17.1 всё раскрашивает


У меня раскрашивает, но цвета - вырвиглаз и настроек для них нет. Поэтому вернулся в 16 студии. Хотя у неё тоже баг - в снапшоте базы не отображает процедуры (сервер sql2012).
12 янв 18, 12:41    [21100952]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить