none
Error con ejecuccion de paquete SSIS RRS feed

  • Pregunta

  • Hola a todos, les cuento...
    Estoy creando una aplicación web que permite mediante un paquete de SSIS (dtsx), trasladar datos desde planillas Excel a mi Base de Datos en SQL Server 2005...
    Cuando aun no tenía implementado el ingreso mediante sesiones, el paquete se ejecutaba sin problemas y realizaba la tarea para la cual fue creado...pero al momento de implementar sesiones la aplicación me marca error.

    El código para mi aplicación lo hice guiandome desde el siguiente sitio.

    http://www.codeproject.com/KB/aspnet/SSIS_DOTNET.aspx

    ______________________________________________________________

    He buscado información y en varias partes me dice que es por problemas de permisos...
    también me han comentado que por estar siendo ejecutado desde mi Pc no ejecuta como deviera el paquete...
    Si la aplicación la monto en un servidor, puede que funcione ???

    Espero que me puedan ayudar...Saludos.


    Les dejo parte de mi código aquí.

    using
     Microsoft.SqlServer.Dts.Runtime;

    protected void btnExecute_Click(object sender, EventArgs e)
    {
    String SQL;
    SqlConnection MiConexion;
    SqlCommand oConn;
    MiConexion = new SqlConnection(ConfigurationSettings.AppSettings["SQLserver"]);

    SQL = "";
    SQL = SQL + " EXEC Pr_insert_tb_excel '" + x_rut.Text + "'," + kn_t_excel.Text + ",'" + x_fecha.Text + "' ";
    //prepare sql statements
    oConn = new SqlCommand(SQL, MiConexion);
    MiConexion.Open();

    try
    {
    oConn.ExecuteNonQuery();
    MiConexion.Close();
    }
    catch (Exception ex)
    {
    //lblInfo.Text = ex.Message;
    Page.Response.Redirect("error_page.aspx?Accion=Errores&url=man_excel_descuentos.aspx&Error=" + ex.Message);

    }

    //**********************************************************************************
    Application app = new Application();
    Package package = null;
    try
    {
    string fileName = Server.MapPath(System.IO.Path.GetFileName(x_upload.PostedFile.FileName.ToString()));
    x_upload.PostedFile.SaveAs(fileName);

    //Load DTSX
    package = app.LoadPackage(@"E:\Inetpub\wwwroot\sistema\administrador\Package1.dtsx", null);

    //Specify Excel Connection From DTSX Connection Manager
    package.Connections["Export_Excel_Descto"].ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + fileName + ";Extended Properties=Excel 8.0; ";

    //Execute DTSX.
    Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally
    {
    package.Dispose(); // AQUI ES DONDE ME MARCA ERROR AL EJECUTAR LA APLICACION.
    package = null;
    }
    traspasar_datos();
    borrar_tabla_temporal();
    File.Delete("E:\\Inetpub\\wwwroot\\sistema\\usuario\\ExcelDescto.xls");
    }
    martes, 13 de abril de 2010 17:07

Respuestas

Todas las respuestas

  • hola

    algo que puedo recomendarte es que modifiques esta parte del codigo

     String SQL;

            SqlConnection MiConexion;

            SqlCommand oConn;

            MiConexion = new SqlConnection(ConfigurationSettings.AppSettings["SQLserver"]);



            SQL = "";

            SQL = SQL + " EXEC Pr_insert_tb_excel '" + x_rut.Text + "'," + kn_t_excel.Text + ",'" + x_fecha.Text + "' ";

            //prepare sql statements

            oConn = new SqlCommand(SQL, MiConexion);

            MiConexion.Open();

     

    por el uso de parametros, algo como esto

    using (SqlConnection MiConexion = new SqlConnection(ConfigurationSettings.AppSettings["SQLserver"]))
    {
        MiConexion.Open();

        SqlCommand cmd = new SqlCommand("Pr_insert_tb_excel", MiConexion);
        cmd.CommandType = CommandType.StoredProcedure;
       
        cmd.Parameters.AddWithValue("@rut", x_rut.Text);
        cmd.Parameters.AddWithValue("@excel", kn_t_excel.Text);
        cmd.Parameters.AddWithValue("@fecha", x_fecha.Text);

        cmd.ExecuteNonQuery();

    }

    por supuesto los nombres de los parametros del stored deberias cambiarlo

    si se que esto no es puntualmente tu consulta, sino el dts, no has probado ir a la carpeta donde esta el archivo .dtsx y asignar mayores permisos sobre esta ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 13 de abril de 2010 17:23
  • Si, he tratatado asignandole mayores permisos pero me sigue marcando lo mismo...

     

    martes, 13 de abril de 2010 17:31
  • hola

    podrias hacer una prueba, crea un dts pero bien simple, que no tome ningun parametro, ni accesa a ningun archivo, que realice una operaicon simple por ahi dejar un mensaje en un archivo, o enviar un mensaje

    y luego rpueba ejecutarlo desde el codigo, solo para validar si este codigo que suas es correcto

     

    segun veo usas este metodo:

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 13 de abril de 2010 19:53