Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Oбработка данных MS SQL "Творческая задача" / 24 сообщений из 24, страница 1 из 1
23.12.2014, 11:00
    #38840307
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Всем привет!

Поставили передо мной такую вот задачу:

Есть excel файл с набором id-шек в столбце.
Нужно создать какую-нить процедуру, которая считывала б эти id-шки, создавала для каждой новый excel-файл, выполняла по каждому id некий sql запрос(выборку данных) и погружала выборку для каждого id в "свой" excel-файл.

Впринципе звучит не очень сложно.. Надеюсь все понятно описал)
MS Server 2008 R2 + Integration services.

Есть идеи?
Буду благодарен за помощь!)
...
Рейтинг: 0 / 0
23.12.2014, 11:03
    #38840316
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBeeВпринципе звучит не очень сложно
...
Есть идеи?
Противоречие...
LolBeeБуду благодарен за помощь!)Вопрос то какой? Всё просто, всё уже сделали, но есть какая то проблема?
...
Рейтинг: 0 / 0
23.12.2014, 11:08
    #38840324
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Мдя.. иногда постановка задач .. феерична
Ну возьмите SSIS нарисуйтье пакет и с NET коде напишите модуль да и делов

Только вот зачем для етго всего сиквел - непонятно вообще
...
Рейтинг: 0 / 0
23.12.2014, 11:27
    #38840354
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBee,
ИМХО навскидку
1) SSIS - если делать самому
2) VBA скрипт из 10-20 строк - если делать будут регулярно рядовые пользователи
3) Какой-нибудь генератор отчетов с возможностью экспорта в Эксель и блэкджеком?
4) ...
...
Рейтинг: 0 / 0
23.12.2014, 11:34
    #38840371
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
alexeyvg,

я русским по белому написал что "задачу поставили", это значить что есть только задание.
От форумчан мне интересны варианты решения этой задачи.
...
Рейтинг: 0 / 0
23.12.2014, 11:36
    #38840374
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
iiyama,

Делать скорее всего буду сам..
А приложений с генераторами никаких нет у нас и если б были я б сюда не писал..
...
Рейтинг: 0 / 0
23.12.2014, 11:38
    #38840381
vova ivanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBeeОт форумчан мне интересны варианты решения этой задачи.макрос в Экселе, запускаемый большой зелёной кнопкой, в том же Экселе
...
Рейтинг: 0 / 0
23.12.2014, 11:41
    #38840390
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
vova ivanov,

я не силен в VBA.
...
Рейтинг: 0 / 0
23.12.2014, 11:41
    #38840392
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBee,
Тогда делайте тем инструментом, который знаете лучше
...
Рейтинг: 0 / 0
23.12.2014, 11:50
    #38840405
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
iiyama,

Я в общем понимаю что куда..
Допустим с помощью SSIS подхватываю файл с данными, выполняю запрос по каждой id.. но вот как в ssis направить результат запроса по каждой id в отдельный excel ... не доходит ..(
...
Рейтинг: 0 / 0
23.12.2014, 12:03
    #38840421
NewBie123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBee,

Используйте C#, через него легче создавать новые эксель файлы. Вот пример
http://www.codeproject.com/Articles/19509/Write-Data-to-Excel-using-C

Минусы SSIS/OPENROWSET в том, что сначала вы должны иметь файл-заготовку, т.к. с помощью них нельзя создавать эксельники. Если все эксель-файлы будут иметь одинаковый шаблон, то можно создать отельный файл и копировать его куда надо, затем в него писать инфу. Но через .Net будет проще.
...
Рейтинг: 0 / 0
23.12.2014, 12:19
    #38840433
2viper2viper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Аналогичную задачу решаю при помощи надстройки PLEX. Есть и бесплатная версия
Но если нужно проводить только эту процедуру с файлом, то добавь макросы
Первый - на разнесение данных на разные листы по определенному полю, второй - на сохранение каждого листа отдельным файлом
Можешь совместить оба в один
Здесь материал
...
Рейтинг: 0 / 0
23.12.2014, 12:22
    #38840435
2viper2viper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
MaxxМдя.. иногда постановка задач .. феерична
Ну возьмите SSIS нарисуйтье пакет и с NET коде напишите модуль да и делов


Если не сложно, скиньте ссылку на литературу по "..SSIS нарисуйтье пакет и с NET коде напишите модуль..".
Насколько понял, dtsx-пакет можно "влить " в exe-шник?
...
Рейтинг: 0 / 0
23.12.2014, 12:47
    #38840461
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
2viper2viperЕсли не сложно, скиньте ссылку на литературу по "..SSIS нарисуйтье пакет и с NET коде напишите модуль..".
стандартная справка по SSIS и любая книжка по шарпу
...
Рейтинг: 0 / 0
23.12.2014, 13:15
    #38840494
2viper2viper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Shakill2viper2viperЕсли не сложно, скиньте ссылку на литературу по "..SSIS нарисуйтье пакет и с NET коде напишите модуль..".
стандартная справка по SSIS и любая книжка по шарпу

да пакеты составляю, но вешаю их на агента. А если можно "вшить" его в екзешник в сишке, то это расширяет потенциальные возможности при помощи штатного планировщика. Спс
...
Рейтинг: 0 / 0
23.12.2014, 13:20
    #38840496
LolBee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Короче я понял) надо активнее учить С# ...
...
Рейтинг: 0 / 0
23.12.2014, 13:31
    #38840505
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
2viper2viperShakillпропущено...

стандартная справка по SSIS и любая книжка по шарпу

да пакеты составляю, но вешаю их на агента. А если можно "вшить" его в екзешник в сишке, то это расширяет потенциальные возможности при помощи штатного планировщика. Спс
вы про это? Loading and Running a Local Package Programmatically
...
Рейтинг: 0 / 0
23.12.2014, 14:07
    #38840561
2viper2viper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
Shakill2viper2viperпропущено...


да пакеты составляю, но вешаю их на агента. А если можно "вшить" его в екзешник в сишке, то это расширяет потенциальные возможности при помощи штатного планировщика. Спс
вы про это? Loading and Running a Local Package Programmatically

Ага, Спс
...
Рейтинг: 0 / 0
23.12.2014, 14:23
    #38840589
Valer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
vova ivanov
предложил самою простую вещь, я ее несколько по подробнее раскрою
по VBA есть куча примеров, освоить несложно
делаете кнопку, к которой привязаны следующие действия
( все на VBA, код лежит в ексельке )
1 чтение ID из листа , типа ID = Cells( 5,10)
2 создаете ADO соединение с базой
3 запускаете SQL запрос или хп с нужным ID
4 получаете в результате выполнения рекордсет
5 создаете новую книгу и записываете туда данные из рекордсета
6 сохраняете книгу
7 переходите к следующему ID или закрываете соединение
по каждому шагу есть куча примеров, в том числе и на этом сайте
на форумах VB и Microsoft Office
...
Рейтинг: 0 / 0
23.12.2014, 14:26
    #38840591
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
VBA, при наличии опыта программирования, вполне реально осилить за один-два вечера в рамках поставленной задачи.
...
Рейтинг: 0 / 0
23.12.2014, 18:53
    #38841024
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBeealexeyvg,

я русским по белому написал что "задачу поставили", это значить что есть только задание.А я прочитал:
LolBeeВпринципе звучит не очень сложноПо мне так звучит сложно.

Средствами SSIS это можно сделать, создавая динамически пакет для каждого запроса (и соответственно файла). Достаточно нетривиальная вещь даже для очень хорошего программиста.
Вот я и думал, какая помощь может потребоваться человеку, для которого это "просто"?

Пишите тогда прогу на том, что знаете.
Если ничего не знаете, начинайте с изучения T-SQL и C# - они ИМХО будут наиболее востребованы для таких задач.
...
Рейтинг: 0 / 0
23.12.2014, 21:01
    #38841092
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
alexeyvgLolBeeВпринципе звучит не очень сложноПо мне так звучит сложно.

Средствами SSIS это можно сделать, создавая динамически пакет для каждого запроса (и соответственно файла). Достаточно нетривиальная вещь даже для очень хорошего программиста.Что-то вы усложняете. Запросы то одинаковые будут. Там меняется только id и имя файла. И то и другое задается переменной. Никакой динамики не нужно.
1. Читаем excel файл.
2. Делаем loop по id-шникам
3. Копируем заранее созданные пустой excel template файл
4. Через выражения формируем запрос и имя файла
5. Сливаем данные простейшим DataFlow.

Даже C# не надо открывать.
...
Рейтинг: 0 / 0
23.12.2014, 21:43
    #38841105
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
MindЧто-то вы усложняете. Запросы то одинаковые будут. Там меняется только id и имя файла. И то и другое задается переменной. Никакой динамики не нужно.Я так понял, что по ID выбираем из таблицы текст запроса.

Выполняем запрос, в соответствии с результатами формируем эксельны файл, с колонками, соответствующими полям в запросе, и соответственно данными.

Если задача как вы говорите, то конечно всё намного проще.
...
Рейтинг: 0 / 0
24.12.2014, 01:31
    #38841172
vova ivanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oбработка данных MS SQL "Творческая задача"
LolBeevova ivanov,

я не силен в VBA.
страница с id-шниками называется ids,
id-шники - в 1-ой колонке, начиная с 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.
38.
39.
40.
41.
42.
43.
44.
Sub test()
    Const strConn = "PROVIDER=SQLOLEDB.1;INITIAL CATALOG=master;DATA SOURCE=MyServer;User ID=MyID;PWD=MyPass"
    
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim i As Long, j As Long
    Dim strSQL As String
    Dim WS As Worksheet
    
    i = 1
    Do While Worksheets("ids").Cells(i, 1) & "" <> ""
        strSQL = strSQL & "select * from [dbo].[spt_values] where [number]=" & Worksheets("ids").Cells(i, 1) & ";" & vbCrLf
        i = i + 1
    Loop
'    Debug.Print strSQL
    '
    Set cn = New ADODB.Connection
    cn.Open strConn
    '
    Set rs = New ADODB.Recordset
    rs.Open strSQL, cn
    '
    i = 1
    Do While Not (rs Is Nothing)
        Set WS = Worksheets.Add
        WS.Name = i
        WS.Range(WS.Cells(2, 1), WS.Cells(2, 1)).CopyFromRecordset rs
        '
        j = 1
        For Each fld In rs.Fields
            WS.Cells(1, j) = fld.Name
            j = j + 1
        Next
        '
        i = i + 1
        Set rs = rs.NextRecordset
    Loop
    '
On Error Resume Next
    Set WS = Nothing
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Oбработка данных MS SQL "Творческая задача" / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]