none
No se puede inicializar el objeto de origen de datos del proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "SERVER_COM" RRS feed

  • Pregunta

  • Hola a todos.Buen dia.

    Bueno mi problema original era crear un servidor vinculado en SQL SERVER 2005 a unas tablas DBF. La solucion puede verla al final de este post: http://social.msdn.microsoft.com/Forums/es-ES/sqlserveres/thread/dc1f4e05-c733-41da-b6ca-3ad6d3525adc

    Ahora el problema que presento es el siguiente:

    Tengo una aplicacion Web(asp.net) que ejecuta un procedimiento almacenado que tiene una consulta distribuida del linked server que he creado. El procedimiento almacenado tiene el siguiente codigo:

    SELECT  HIRG.RGAFECHA AS fecha
                ,EBI.EBIDOCID AS dui
                ,HIRG.RGANCORF AS num_not
                ,HIRG.RGAMFACT AS tot_mont
    FROM    SERVER_COM...EBIDENT EBI INNER JOIN SERVER_COM...HIRGABND HIRG
                ON EBI.EBICODEB = HIRG.RGACODEB
    WHERE    HIRG.RGAFECHA >=@fecha_inicial AND HIRG.RGAFECHA <=@fecha_final

     

    Si ejecuto este sp en el SQL SERVER todo va bien se obtienen los datos desde las tablas dbf.

     

    Ahora si este procedimiento lo invoco desde la aplicacion Web recibo este error:

    System.Data.SqlClient.SqlException: No se puede inicializar el objeto de origen de datos del proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "SERVER_COM". en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) en System.Data.SqlClient.SqlDataReader.ConsumeMetaData() en System.Data.SqlClient.SqlDataReader.get_MetaData() ...

     

    El codigo con el que llamo al procedimiento almacenado desde codigo es el siguiente:

                    ISession session = ActiveRecordMediator.GetSessionFactoryHolder().CreateSession(typeof(ActiveRecordBase));

                    SqlConnection conexion = new SqlConnection(session.Connection.ConnectionString);
                    SqlDataAdapter adapter = new SqlDataAdapter("p_lks_SV_carga_regnotas", conexion);
                    adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                    adapter.SelectCommand.Parameters.Add(new SqlParameter("@fecha_inicial", SqlDbType.Char, 10));
                    adapter.SelectCommand.Parameters.Add(new SqlParameter("@fecha_final", SqlDbType.Char, 10));
                    adapter.SelectCommand.Parameters["@fecha_inicial"].Value = "2010/01/10";
                    adapter.SelectCommand.Parameters["@fecha_final"].Value = "2010/10/10";

                    DataTable dt = new DataTable();
                    adapter.Fill(dt);

     

    Como estoy trabajando tambien con Crystal Report, se me ocurrio probar el sp, creando un reporte con el procedimiento almacenado que tiene la consulta distribuida: El resultado es que me dice es que la ruta de mi link server \\ip\carpeta\carpetaDFS es invalida. y creo que por esa razon no se puede iniciar el proveedor OLE DB y por tanto no se ejecuta el sp.

    Alguien tiene alguna idea como solucionar esto ??????????

     

    Gracias de antemano por su colaboracion y tiempo.

    Saludos

     

    miércoles, 10 de noviembre de 2010 16:47

Respuestas

  • Hola

    Lo he resuelto !!!

    Mi solucion fue crear un login con autenticacion sql en el SQL Server y darle los permisos necesarios de EXECUTE al procedimiento almacenado al login de sql.

     

    Saludos

    • Marcado como respuesta robertosv lunes, 22 de noviembre de 2010 14:35
    lunes, 22 de noviembre de 2010 14:34

Todas las respuestas