Problem after windows update (Microsoft.Jet.OLEDB.4.0 no longer works)
See original GitHub issueHi team,
Today I update my Windows and after this, my test with LinqToExcel fails. Is any have the same problem?
Error log:
Controllers\Cargas\InformeDeCargasController.cs(81,51): warning CS0429: Se ha detectado un código de expresión al que no se puede tener acceso [D:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Web\Web.csproj]
--
Controllers\Cargas\InformeDeCargasController.cs(82,51): warning CS0429: Se ha detectado un código de expresión al que no se puede tener acceso [D:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Web\Web.csproj]
Error Message:
Test method Infraestructura.Test.Readers.LecturaDeMDTArchivoExcelTest.VerificaLaLecturaDeTodosLosCampos threw exception:
System.InvalidOperationException: Error en la lectura del archivo. Verifique que contenga todas las columnas requeridas.
Stack Trace:
en Infraestructura.Readers.LectorXLSMovimientosDepositoDeTerceros.LeerYRetornarEnumerator() en d:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Infraestructura\Readers\LectorXLSMovimientosDepositoDeTerceros.cs:línea 73
en Infraestructura.Readers.LectorXLSMovimientosDepositoDeTerceros.GetEnumerator() en d:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Infraestructura\Readers\LectorXLSMovimientosDepositoDeTerceros.cs:línea 81
en Infraestructura.Test.Readers.LecturaDeMDTArchivoExcelTest.VerificaLaLecturaDeTodosLosCampos() en d:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Infraestructura.Test\Readers\LecturaDeMDTArchivoExcelTest.cs:línea 50
Error Message:
Test method Infraestructura.Test.Readers.LecturaArchivoExcelTest.LeeArchivoExcel threw exception:
System.Data.OleDb.OleDbException: Error no esperado desde el controlador de la base de datos externa (1) .
Stack Trace:
en System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
en System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
en System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
en System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
en System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
en System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
en System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
en System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
en System.Data.OleDb.OleDbConnection.Open()
en LinqToExcel.Query.ExcelQueryExecutor.GetDataResults(SqlParts sql, QueryModel queryModel)
en LinqToExcel.Query.ExcelQueryExecutor.ExecuteCollection[T](QueryModel queryModel)
en LinqToExcel.Query.ExcelQueryExecutor.ExecuteSingle[T](QueryModel queryModel, Boolean returnDefaultWhenEmpty)
en LinqToExcel.Query.ExcelQueryExecutor.ExecuteScalar[T](QueryModel queryModel)
en Remotion.Data.Linq.Clauses.StreamedData.StreamedScalarValueInfo.ExecuteScalarQueryModel[T](QueryModel queryModel, IQueryExecutor executor)
en Remotion.Data.Linq.Clauses.StreamedData.StreamedScalarValueInfo.ExecuteQueryModel(QueryModel queryModel, IQueryExecutor executor)
en Remotion.Data.Linq.QueryModel.Execute(IQueryExecutor executor)
en Remotion.Data.Linq.QueryProviderBase.Execute[TResult](Expression expression)
en System.Linq.Queryable.Count[TSource](IQueryable`1 source)
en Infraestructura.Test.Readers.LecturaArchivoExcelTest.LeeArchivoExcel() en d:\CruiseControl.NET\builds\TransoftWEBDesarrollo\src\Infraestructura.Test\Readers\LecturaArchivoExcelTest.cs:línea 44
Test Run Failed.
Issue Analytics
- State:
- Created 6 years ago
- Comments:30
Top Results From Across the Web
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on ...
First, Please install the software Microsoft Access Database Engine 2010 Redistributable. Second, you could try the following connection string ...
Read more >Solving the error 'The Microsoft.Jet.OLEDB.4.0 provider is not ...
Problem This error message appears only on 64-bit Windows operating systems. ... Solving the error 'The Microsoft.Jet.OLEDB.4.0 provider is not registered ...
Read more >Microsoft.Jet.OLEDB.4.0' provider is not registered on the ...
I found a solution for this problem. The issue I described in my question occured basically due to the incompatibility of the Microsoft.Jet....
Read more >Windows updates appear to have broke my SQL jobs but ...
It would seem some update from Microsoft makes it no longer work. ... this working with Microsoft.Jet.OLEDB.4.0? I am having the same issue, ......
Read more >Openrowset and Microsoft.Jet.OLEDB.4.0
Problem. The reason that one is getting the error is that when the sql service account uses jetoledb, it uses impersonation.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Investigating now: Error happens upon opening the connection. There are no more details sadly and i’m no expert on OLEDB / JetEngine, but according to wikipedia ACE 12 supports everything that OLE 4 does, so shouldn’t it be possible to simply switch ExcelUtilities.cs Line 48
to
If you have access to the source code of the application using linqtoexcel, you could also define the Engine when creating the ExcelQueryFactory like this:
using (var eqf = new ExcelQueryFactory(@"") { DatabaseEngine = DatabaseEngine.Ace })
i’ll try to run the tests in a second to find out if there is any case that does not work with the solution.
Even if the database engine is defined as Ace, when “GetWorksheetNames” or “GetColumnNames” is called it’s defaulting back to the Jet engine…causing it to fail again. For now, we can use a custom build of the library.