Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
Есть задача предоставить пользователю некий веб-интерфейс, с помощью которого он сможет управлять данными в БД.
Предполагается сделать blazor приложение, в котором пользователь выберет xlsx файл и загрузит его содержимое в базу.

И вот здесь не могу определиться, как обработать файл? Толкнуть SSIS пакет из приложения или на C# организовать чтение файла и запись в БД?

Может есть более простой вариант для решения такой задачи или какой-то готовый универсальный инструмент?
19 июн 20, 11:13    [22153494]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5445
TJ001,
Сделать на шарпе нормальный веб сервис или сайт.
Плюсы не на это заточены.
19 июн 20, 12:05    [22153543]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5445
TJ001,

Blazor пока эксперимент. Не трогайте пока для продакшена.
19 июн 20, 12:07    [22153547]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
PetroNotC Sharp,

На чем бы Вы предложили делать?
19 июн 20, 12:24    [22153561]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5445
TJ001,
Веб делают на ЯП с поддержкой веба.
Java, шарп, питон, php)).
Может ты слово веб не так понял?
Десктоп не подходит? Чем?
19 июн 20, 12:33    [22153574]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50842

TJ001
На чем бы Вы предложили делать?

Я бы предложил делать та том, на чём умеете. В конце концов ничто не мешает Вам
по-быстрому сделать первый вариант, а если не взлетит - попытать второй.

Posted via ActualForum NNTP Server 1.5

19 июн 20, 12:38    [22153578]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
PetroNotC Sharp
TJ001,
Может ты слово веб не так понял?
Десктоп не подходит? Чем?

С вебом все понятно.
Десктоп не подходит, потому что возникает вопрос с распространением этого приложения.
Если пользователь один, другое дело
А когда их десятки. Выкладывать десктоп в шару или распространять через GP? Не очень как-то.
Куда будет десктоп складывать файлы для последующей обработки тоже в шару? Или сразу из себя соединяться с БД и заталкивать туда содержимое?
Через шару можно и на SSRS сделать простой отчет, который будет при нажатии на кнопку толкать SSIS для загрузки из шары, но это костыляка.
19 июн 20, 15:32    [22153742]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
Dimitry Sibiryakov

TJ001
На чем бы Вы предложили делать?

Я бы предложил делать та том, на чём умеете. В конце концов ничто не мешает Вам
по-быстрому сделать первый вариант, а если не взлетит - попытать второй.

Ну вот тут и вопрос)) Потому что работать с этим особо не приходилось, стал смотреть, какие платформы для разработки веб-приложений нынче в моде. Так как нет особого опыта в них, то все равно с чего начинать)))
19 июн 20, 15:42    [22153755]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50842

TJ001
Выкладывать десктоп в шару или распространять через GP? Не очень как-то.

Да. Все вменяемые люди так и делают.

TJ001
Куда будет десктоп складывать файлы для последующей обработки тоже в шару? Или сразу из
себя соединяться с БД и заталкивать туда содержимое?

Да. Все вменяемые люди так и делают.

Posted via ActualForum NNTP Server 1.5

19 июн 20, 15:52    [22153763]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
petrav
Member

Откуда:
Сообщений: 2441
TJ001
Dimitry Sibiryakov

пропущено...

Я бы предложил делать та том, на чём умеете. В конце концов ничто не мешает Вам
по-быстрому сделать первый вариант, а если не взлетит - попытать второй.

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

Web разработка -- это отдельная профессия, там мало общего с разработкой обычных приложений. Вам придётся много учиться. Начните с Явы.
19 июн 20, 15:55    [22153769]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5445
TJ001,
Странное вы пишите.
Откройте для себя клиент-сервер предприятия на 3-5 тыс человек. С автообновлением с шары ftp.
19 июн 20, 15:58    [22153772]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
L1G
Member

Откуда:
Сообщений: 134
TJ001, на шарпе ClickOnce элементарно решает проблему распространения дистрибутива/обновления программы (нужен сервер с IIS, но у вас наверняка есть, раз думаете про веб-варианты)
19 июн 20, 22:48    [22154041]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
White Owl
Member

Откуда:
Сообщений: 12542
Модератор: Вопросы выбора языка для задачи это не вопросы по конкретному языку. Переносим...


А вообще, я эту задачу решал на Perl.
Все просто и легко. Открыть книгу, выбрать первую страницу, найти в ней первый заполненный регион, прочитать первую строку по ячейкам, сравнить этот набор текстов с одним из десятков известных шаблонов, узнав которой из шаблонов использован клиентом читать данные построчно и отправлять их в базу. Все.

Модератор: Тема перенесена из форума "C++".


Сообщение было отредактировано: 19 июн 20, 23:05
19 июн 20, 23:07    [22154053]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
TJ001,

а сейчас пользователь как управляет данными в БД?
20 июн 20, 09:28    [22154144]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
Изопропил
Member

Откуда:
Сообщений: 31518
TJ001
На чем бы Вы предложили делать?

nodejs
20 июн 20, 20:20    [22154318]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я не понимаю. Тут или тему топика надо поставить в терминах Программирования.
Или мувнуть обратно в Dotnet или MSSQL откуда он прилетело.
20 июн 20, 21:26    [22154345]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
White Owl
Member

Откуда:
Сообщений: 12542
mayton
Я не понимаю. Тут или тему топика надо поставить в терминах Программирования.
Или мувнуть обратно в Dotnet или MSSQL откуда он прилетело.
Оно прилетело из С++
20 июн 20, 22:51    [22154372]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
Дмитрий Мух
TJ001,

а сейчас пользователь как управляет данными в БД?


Сейчас все сложно - через костыляку.

На SSRS сделан отчет, который как бы и не отчет, а набор ссылок, оформленных в виде кнопок.
Кнопки с текстом типа "Загрузить Х", "Загрузить Y", "Просмотреть X", "Очистить Y" и т.д.
При нажатии на кнопку открывается этот же отчет, только с другим параметром. Куча датасетов, в каждом из них IF
А под IF'ом кроется либо запуск SSIS пакета (если параметр в отчете для него предназначен), который из шары забирает файл и уже сам укладывает БД, а в конце, по результату работы пакета возвращается некое значение в поле resul, либо, возврат "select 0 as result" если попали в ELSE. Если загрузка успешная, то снова этот же отчет открывается и на нем отображается результирующая табличка, которая была загружена из файла.
Разумеется, пользователь должен заранее положить в шару файл.

Со временем кнопок становится все больше, датасетов тоже.
Там уже черт ногу сломит. Хотя изначально архитектура продумывалась так, чтобы добавление новой кнопки сводилась к минимуму действий, однако это все равно не самое приятное занятие. А больше всего бесит шара. Потому что SSIS пакет ищет один конкретный файл в определенной папке. Имя имеет значение. Пользователи путаются - выкладывают файл не в ту шару, дают ему не то имя и так далее.

Я хочу это переделать на что-то человеческое.
Чтобы не было шары, чтобы открывался диалог выбора файла с машины пользователя.
Думал сначала использовать какой-нибудь CRM, чтобы был тупо кноструктор страничек, но опять возникает вопрос - что, писать SQL запрос внутри этого CRM, который будет что? И все пароли ему отдать, этому CRM?

Половина функционала CRM будет не нужна. По факту мне нужна-две странички, с парой-тройкой контролов. С доменной аутентификацией, ну и разграничением кому что можно.

Потом появились мысли на этом же приложении API сделать, чтобы не только пользователи, но и роботы могли что-то сделать иногда. Причем планирую без IIS, на kestrel.

После долгих раздумий было решено делать приложение на шарпах, и вопрос топика сводился по сути только к тому, как прочитать файл xlsx: средствами c# либо SSIS пакетом (с религиозной точки зрения)? Мне понравился вариант через OleDbConnection - не придется на сервере ставить офис, а драйвер Access database engine 12 там уже и так стоит, для SSIS пакетов, которые сейчас работают.

Может быть после всей этой истории что-то посоветуете об общем подходе? Может быть не тем путем я иду?
21 июн 20, 20:24    [22154709]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
hVostt
Member

Откуда:
Сообщений: 18013
TJ001
Может быть не тем путем я иду?


А вы каким путём хотите идти? Чтобы что?

Вы рассказали о решении, о котором даже читать больно, слёзы наворачиваются.
Но оно же работает, правильно? Не без проблем, но тащит.

Вы же не рассказали, какими ресурсами обладаете, сколько рабочих рук и какой они квалификации, сколько есть времени, есть ли какие-то сроки.

И самое главное. Что должно быть на выходе. Не как прийти туда, не знаю куда. А что вам нужно в итоге. Опишите целевое решение, как будто всё уже сделали, как оно выглядит? Как работает?

Совершенно не интересно обсуждать идею, как из одного решение, сделанного из говна и палок на трясущихся коленках, другое -- но по сути такое же.
21 июн 20, 23:14    [22154808]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
hVostt
Member

Откуда:
Сообщений: 18013
petrav
Web разработка -- это отдельная профессия, там мало общего с разработкой обычных приложений. Вам придётся много учиться. Начните с Явы.


Совершенно в корне не согласен с подобными рекомендациями.
Начните с XXX -- плохо.

Начните с главного, научитесь формулировать задачи и требования.

Если вы научитесь обращаться с молотком и пассатижами, это вообще ничего не даёт в итоге. Можете забить гвоздь, но хз куда его вбивать. Какой гвоздь выбрать. И вообще, нужно ли чего-то куда-то вбивать.
21 июн 20, 23:17    [22154809]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
TJ001

Думал сначала использовать какой-нибудь CRM, чтобы был тупо кноструктор страничек, но опять возникает вопрос - что, писать SQL запрос внутри этого CRM, который будет что? И все пароли ему отдать, этому CRM?

Прошу прощения, хотел написать CMS.

hVostt

Но оно же работает, правильно? Не без проблем, но тащит.

Да, тащит.

hVostt

А вы каким путём хотите идти? Чтобы что?

Чтобы было легко грузить данные в БД, как из файлов (в большинстве случаев), так и возможность подправить какую-то константу в пару нажатий. У каждого пользователя они свои - наборы и структура файлов, константы для разных сервисов и/или отчетов. Доступ должен быть ограничен и каждому своё. Настройки должны быть у приложения, разумеется, чтобы можно было управлять правами и прочим.

Также нужно предоставить другим системам (за пределами предприятия) в автоматическом режиме получать/отправлять некоторые наборы данных. Хотелось бы, чтобы это была отдельная служба, которую без особых сложностей можно запустить на том или ином сервере.

Ресурсы... их почти нет (свободных нет, среди которых неплохие MSSQLбазаданщики и несколько универсалов, вот так чтобы был чистый c++ник, который только этим занимается - таких нет). Это задача факультативная, можно сказать даже, что она исследовательская, направленная на приобретение компетенций, поэтому сроков нет.

Если выйдет первый блин комом - ничего страшного.

Нет никакой необходимости сразу делать один большой комбайн. Первое, что меня интересует - это веб-UI, с возможностью загрузки файлов в БД. Что бы не говорили выше, десктоп, распространяемый через шары не устраивает. И пусть меня закидают тапками, если кому-то это угодно.

Просто все это описание уже выходит за рамки заголовка, модераторы меня порежут на куски)
21 июн 20, 23:51    [22154819]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
Хочу уточнить, что в базу стекаются данные из разных систем и управление этими данными ведется в первоисточниках. Но есть ряд данных, которых нет нигде, только у менеджеров на руках в каких-то файликах, однако конечная картина складывается только при склеивании данных из файлов и первоисточников. Вот именно эти данные из файлов нужно загружать и ими управлять - корректировать, обновлять, дополнять.
22 июн 20, 00:09    [22154827]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
hVostt
Member

Откуда:
Сообщений: 18013
TJ001
Хочу уточнить, что в базу стекаются данные из разных систем и управление этими данными ведется в первоисточниках. Но есть ряд данных, которых нет нигде, только у менеджеров на руках в каких-то файликах, однако конечная картина складывается только при склеивании данных из файлов и первоисточников. Вот именно эти данные из файлов нужно загружать и ими управлять - корректировать, обновлять, дополнять.


Вообще у экселя есть такая фишка, можно подключать внешние источники данных. Может ненадо ничего никуда загружать, а наоборот.

Как-то это всё так тухло выглядит. Никакой конечно картины не складывается. Ни чёткой задачи, ни чётких ФТ.

Мне кажется вы можете взять что угодно и как-то это применить, пофигу как. Может что-то улучшите в каком-то аспекте, а может нет.

Так как вам эту задачу никто не ставил, и вы не обладаете полномочиями, чтобы вознести флаг, то это какой-то бесперспективняк.

Хотел было рассказать про классический сервер отчётов и портал отчётов, но тут какие-то изыски, личные файлы, слкеивание данных с какими-то личными файлами. Жесть прям, жёсткая.
22 июн 20, 02:03    [22154845]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
White Owl
Member

Откуда:
Сообщений: 12542
TJ001
Хочу уточнить, что в базу стекаются данные из разных систем и управление этими данными ведется в первоисточниках. Но есть ряд данных, которых нет нигде, только у менеджеров на руках в каких-то файликах, однако конечная картина складывается только при склеивании данных из файлов и первоисточников. Вот именно эти данные из файлов нужно загружать и ими управлять - корректировать, обновлять, дополнять.
Это решается в первую очередь административными методами. Если некий менеджер предпочитает вести документацию по своему, а не так как рекомендовано для всех менеджеров в организации - увольнять его нафиг.
Твоя задача, то что ты должен сделать прямо сейчас чтобы удовлетворить собственную хотелку о красивой системе - придумать универсальный метод ввода данных и убедить свое начальство что это будет хорошо и лучше чем сейчас. А имея общий для всех шаблон ввода данных ты уже сможешь полировать техническую часть реализации этого шаблона.
Как пример таких шаблонов:
- веб интерфейс, к общей базе данных
- десктопный клиент к общей базе данных
- десктопный клиент к локальной базе которая регулярно синхронизируется с общей
Если очень хочется сохранить Эксель на рабочих местах, то делаешь единую отчетную систему выдающую XLSX в тех форматах которые ты задашь и требование возвращать изменения именно в этих форматах и "ошибка ввода" если какой-то умелец поменяет формат
22 июн 20, 04:36    [22154866]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка xlsx в MSSQL через веб-интерфейс. Лучше SSIS пакетом или на C#?  [new]
TJ001
Member

Откуда: от верблюда
Сообщений: 408
[quot White Owl#22154866]
TJ001

Если очень хочется сохранить Эксель на рабочих местах, то делаешь единую отчетную систему выдающую XLSX в тех форматах которые ты задашь и требование возвращать изменения именно в этих форматах и "ошибка ввода" если какой-то умелец поменяет формат

Отчетная система уже есть на SSRS и она работает. Нет необходимости делать ее на экселях.
Форматы файлов для загрузки стандартизированы. Пользователь выгружает шаблон файла из системы - это уже есть!
Там заполнен ряд столбцов идентификаторами и описанием. Остается только нужные цифры проставить напротив того или иного идентификатора, а затем загрузить обратно.
Почему именно эксель: потому что данных много - тысячи строк и заполнять их вручную где-то в эдитбоксах не реально, а в экселе это удобно - протянул, выделил и все такое. Из-за большого количества элементов нужна пакетная загрузка.
Что это за данные, которые есть у менеджеров:
Например, какие-то бонусы клиентам/поставщикам, на которые нужно скорректировать конечные цифры, имеющиеся в учетной системе. В учетной системе нет полей, куда можно эти данные внести.
Либо это какие-то планы по продажам или коэффициенты по логистике и многое другое другое.
Это такие данные, которые меняются достаточно быстро. Учетные системы за этими изменениями не успевают, чтобы вносить их туда. Под внесением я подразумеваю добавление новых полей в учетную систему.
Я не знаю как еще сказать, что от экселя тут не избавиться.

Можете представить, хоть на минуту, что все варианты были уже рассмотрены?
Концепция уже есть и она продумана до мелочей.
Вопрос я задаю все время только в одной плоскости - с помощью чего загрузить эти файлы?
Какой удобный инструмент для этого есть? Какая-то платформа?
Меня интересует только это.
Поиски такой платформы не дали результата, поэтому было решено делать его самостоятельно.
22 июн 20, 10:21    [22154965]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Программирование Ответить