Динамическое сохранение вывода из пакета служб SSIS - PullRequest
1 голос
/ 15 июня 2011

Используя пакет служб SSIS, я создаю ExcelSheet в качестве вывода.Я вызываю пакет служб SSIS через исходный код C #. В настоящее время я сохраняю файл как: pkgTR.Variables ["dPath"]. Value = @ "c: \" + sFileName;

Нам нужна функцияСохранить как для конечного пользователя - кто решит сохранить файл на C: \ или D: \ или в том месте, где он хочет сохранить файл.

try
{
    string pkgTRPath = @"C:\Reports\SSISPackages\GenerateTransactionReport.dtsx";
    Package pkgTR;
    Microsoft.SqlServer.Dts.Runtime.Application app;
    DTSExecResult pkgResults;

    app = new Microsoft.SqlServer.Dts.Runtime.Application();
    pkgTR = app.LoadPackage(pkgTRPath, null);

    pkgTR.Variables["sConn"].Value = System.Configuration.ConfigurationManager.AppSettings["SSISConn"];
    pkgTR.Variables["sDate"].Value = txtFromDate.Text;
    pkgTR.Variables["eDate"].Value = txtToDate.Text;
    pkgTR.Variables["sSortCode"].Value = drpSortCode.SelectedValue.TrimEnd();
    string sFileName = "TransactionReport_" + drpSortCode.SelectedValue.TrimEnd() + ".xls";
    pkgTR.Variables["dPath"].Value = @"c:\" + sFileName;

    pkgResults = pkgTR.Execute();
    var reportID = drpSortCode.SelectedValue.TrimEnd();

    if (pkgTR.ExecutionResult.ToString() == "Success")
    {
        Response.Write(String.Format(@"<script language=javascript>alert('Excel Report for {0} is Generated');</script>", reportID));
    }
    else if (pkgTR.ExecutionResult.ToString() == "Failure")
    {
        Response.Write("<script language=javascript>alert('Failure:Unable to generate report!!');</script>");
    }
}

catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

1 Ответ

1 голос
/ 20 июня 2011

Если вы вызываете пакет из C #, не можете ли вы открыть диалоговое окно в C # перед запуском пакета и затем передать путь к каталогу в пакет SSIS при его запуске?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...