powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Oбработка данных MS SQL "Творческая задача"
24 сообщений из 24, страница 1 из 1
Oбработка данных MS SQL "Творческая задача"
    #38840307
Фотография LolBee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

Ага, Спс
...
Рейтинг: 0 / 0
Oбработка данных MS SQL "Творческая задача"
    #38840589
Valer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Oбработка данных MS SQL "Творческая задача"
    #38840591
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VBA, при наличии опыта программирования, вполне реально осилить за один-два вечера в рамках поставленной задачи.
...
Рейтинг: 0 / 0
Oбработка данных MS SQL "Творческая задача"
    #38841024
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LolBeealexeyvg,

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

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

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

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

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

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

Если задача как вы говорите, то конечно всё намного проще.
...
Рейтинг: 0 / 0
Oбработка данных MS SQL "Творческая задача"
    #38841172
vova ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Oбработка данных MS SQL "Творческая задача"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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