New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem after windows update (Microsoft.Jet.OLEDB.4.0 no longer works) #124

Closed
cpistiner opened this Issue Oct 11, 2017 · 30 comments

Comments

Projects
None yet
8 participants
@cpistiner

cpistiner commented Oct 11, 2017

Hi 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.
@cpistiner

This comment has been minimized.

Show comment
Hide comment
@cpistiner

cpistiner Oct 11, 2017

Adding information

In my local computer have the same problem, today before install windows updates my test run perfectly, but after install windows updates i have errors:

Test Error (using LinqToExcel):

Result StackTrace:	
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.ExcelUtilities.GetColumnNames(ExcelQueryArgs args)
   en LinqToExcel.Query.ExcelUtilities.GetColumnNames(String worksheetName, String fileName)
   en LinqToExcel.ExcelQueryFactory.GetColumnNames(String worksheetName)
   en Infraestructura.Test.Readers.LecturaArchivoExcelTest.PruebaDeErrorEnUso() en K:\NETEnvironment\TransoftWEBSources\src\Infraestructura.Test\Readers\LecturaArchivoExcelTest.cs:línea 40
Result Message:	
Test method Infraestructura.Test.Readers.LecturaArchivoExcelTest.PruebaDeErrorEnUso threw exception: 
System.Data.OleDb.OleDbException: Error no esperado desde el controlador de la base de datos externa (1) .

Regards,
César

cpistiner commented Oct 11, 2017

Adding information

In my local computer have the same problem, today before install windows updates my test run perfectly, but after install windows updates i have errors:

Test Error (using LinqToExcel):

Result StackTrace:	
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.ExcelUtilities.GetColumnNames(ExcelQueryArgs args)
   en LinqToExcel.Query.ExcelUtilities.GetColumnNames(String worksheetName, String fileName)
   en LinqToExcel.ExcelQueryFactory.GetColumnNames(String worksheetName)
   en Infraestructura.Test.Readers.LecturaArchivoExcelTest.PruebaDeErrorEnUso() en K:\NETEnvironment\TransoftWEBSources\src\Infraestructura.Test\Readers\LecturaArchivoExcelTest.cs:línea 40
Result Message:	
Test method Infraestructura.Test.Readers.LecturaArchivoExcelTest.PruebaDeErrorEnUso threw exception: 
System.Data.OleDb.OleDbException: Error no esperado desde el controlador de la base de datos externa (1) .

Regards,
César

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 11, 2017

Collaborator

Can you tell me which version of Windows, please? You can use winver.exe To get the exact version. Also, if possible, can you list the recent updates that were applied?

Collaborator

mrworkman commented Oct 11, 2017

Can you tell me which version of Windows, please? You can use winver.exe To get the exact version. Also, if possible, can you list the recent updates that were applied?

@cpistiner

This comment has been minimized.

Show comment
Hide comment
@cpistiner

cpistiner Oct 11, 2017

Yes, sure!

winver

actus

cpistiner commented Oct 11, 2017

Yes, sure!

winver

actus

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 11, 2017

Collaborator

Ok, thanks. I will see if I can reproduce the issue.

Collaborator

mrworkman commented Oct 11, 2017

Ok, thanks. I will see if I can reproduce the issue.

@liaoyalien

This comment has been minimized.

Show comment
Hide comment

liaoyalien commented Oct 12, 2017

@volkermauel

This comment has been minimized.

Show comment
Hide comment
@volkermauel

volkermauel Oct 12, 2017

my educated guess is, that KB4041678 and/or KB 4041681 is responsible for this. uninstalling -678 didn't solve the issue. also removed -681 and it worked again, so either a combination of both or only 681 causes this issue.

since the client is going to be in use right now can't investigate any further and my dev system did not install the update yet.

long story short:
Remove KB4041678 & KB4041681 to get it working again

volkermauel commented Oct 12, 2017

my educated guess is, that KB4041678 and/or KB 4041681 is responsible for this. uninstalling -678 didn't solve the issue. also removed -681 and it worked again, so either a combination of both or only 681 causes this issue.

since the client is going to be in use right now can't investigate any further and my dev system did not install the update yet.

long story short:
Remove KB4041678 & KB4041681 to get it working again

@volkermauel

This comment has been minimized.

Show comment
Hide comment
@volkermauel

volkermauel Oct 12, 2017

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

else
            {
                if (args.DatabaseEngine == DatabaseEngine.Jet)
                {
                    connString = string.Format(
                        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""",
                        args.FileName);
                }
                else
                {
                    connString = string.Format(
                        @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""",
                        args.FileName);
                }
            }

to

else
            {
                    connString = string.Format(
                        @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""",
                        args.FileName);
            }

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.

volkermauel commented Oct 12, 2017

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

else
            {
                if (args.DatabaseEngine == DatabaseEngine.Jet)
                {
                    connString = string.Format(
                        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""",
                        args.FileName);
                }
                else
                {
                    connString = string.Format(
                        @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""",
                        args.FileName);
                }
            }

to

else
            {
                    connString = string.Format(
                        @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""",
                        args.FileName);
            }

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.

@liaoyalien

This comment has been minimized.

Show comment
Hide comment
@liaoyalien

liaoyalien Oct 12, 2017

Hi @streppelchen, I tried your solution 2 which to modify source code, it works for me. Thank you so much!

liaoyalien commented Oct 12, 2017

Hi @streppelchen, I tried your solution 2 which to modify source code, it works for me. Thank you so much!

@cpistiner

This comment has been minimized.

Show comment
Hide comment
@cpistiner

cpistiner Oct 12, 2017

Hi @streppelchen !

Great investigation! I also came to that conclusion.

cpistiner commented Oct 12, 2017

Hi @streppelchen !

Great investigation! I also came to that conclusion.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 12, 2017

Collaborator

Good to know using ACE seems to work around the issue. I will still need to investigate why these Windows updates cause the exception to occur in the first place.

Collaborator

mrworkman commented Oct 12, 2017

Good to know using ACE seems to work around the issue. I will still need to investigate why these Windows updates cause the exception to occur in the first place.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 12, 2017

Collaborator

Per October 10, 2017—KB4041681 (Monthly Rollup)

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

Per October 10, 2017—KB4041678 (Security-only update)

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

So, both potentially are the cause.

Collaborator

mrworkman commented Oct 12, 2017

Per October 10, 2017—KB4041681 (Monthly Rollup)

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

Per October 10, 2017—KB4041678 (Security-only update)

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

So, both potentially are the cause.

@mrworkman mrworkman self-assigned this Oct 14, 2017

@mrworkman mrworkman added the Bug label Oct 14, 2017

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 14, 2017

Collaborator

Hmmm... looks like other people are having issues with these recent patches (i.e. Microsoft broke something).

My recommendation would be to uninstall the following patch(es):

OS Patches
Windows 7 KB4041678, KB4041681
Windows 8.1 KB4041693, KB4041687
Windows Server 2008 R2 KB4041678, KB4041681
Windows 10 KB4041676, KB4041691
Windows Server 2016 KB4041691

Translated from German from here:

JET DB engine, Office shortcuts

In the blog there is this comment , which indicates that Excel files can no longer be linked to Access.

Since the last windowsupdate 10.10.2017, it is no longer possible to link excel files to Access 2000, or to open linked excel files

Since the last Windowsupdate 10.10.2017, it is no longer possible to link Excel files with Access 2000 or to open linked EXCEL files with Access 2000.

And in this comment there is a confirmation or a reference to an Excel database error.

Hello DKPrince,
we probably have the same problem here.
On all Windows 7 computers, we process address databases here, the database .xls can not be >> opened everywhere, since it is said to have no data fields.

In Excel itself, the address lists can be opened without problems, only if we want to link you for the serial letter creation comes a database error.

With .xlsx it goes immediately and with a conversion into a .csv it goes likewise. But we need machine-engineering .xls lists and this is a violent problem.

If someone has a solution, I am grateful for every tip.
Which patch do you have to uninstall again and how do you do it best?

The security updates for Windows 7 / 8.1 (October 2017) , the blog post, mentions that Microsoft patches the Microsoft JET Database Engine with KB4041681 and KB4041678 (Windows 7) as well as Update KB4041693 and KB4041687 (Windows 8.1). This is to close the following safety gaps.

  • CVE-2017-8717 - Microsoft JET Database Engine Remote Code Execution Vulnerability
  • CVE-2017-8718 - Microsoft JET Database Engine Remote Code Execution Vulnerability

In this heise.de forum post , however, a user complains that the Excel access in C # over Microsoft.Jet.OLEDB.4.0 no longer works. The error 0x80004005 (denied access) is reported when accessing the database driver in System.Data.OleDb.OleDbException . Also at askwoody.com there is this comment , which complains a broken Microsoft.Jet.OLEDB.4.0 database interface. No XLS files can be imported into an application (see also this article ). I am currently telling you that the problem for the above problems is to be found here.

Also here:

Problem importing XLS files

If you 're looking at problems importing XLS files into your applications, you are not alone. See this anonymous post on AskWoody:

Windows 7 for x64-based Systems KB4041681 and 2017-10 Security Only for Windows 7 for x64-based Systems KB4041678.

Yesterday we got bombarded with the problem that we can not import to xls file into our application, which we have been doing since forever. It gives an error: Unexpected error from external database driver (1). We dug deeper and discovered

Provider = Microsoft.Jet.OLEDB.4.0; DataSource = {0}; ExtendedProperties = \ "Excel 8.0; HDR = Yes; IMEX = 1 \"

Does not work anymore. After all, we'll get back to normal.

More here:

Collaborator

mrworkman commented Oct 14, 2017

Hmmm... looks like other people are having issues with these recent patches (i.e. Microsoft broke something).

My recommendation would be to uninstall the following patch(es):

OS Patches
Windows 7 KB4041678, KB4041681
Windows 8.1 KB4041693, KB4041687
Windows Server 2008 R2 KB4041678, KB4041681
Windows 10 KB4041676, KB4041691
Windows Server 2016 KB4041691

Translated from German from here:

JET DB engine, Office shortcuts

In the blog there is this comment , which indicates that Excel files can no longer be linked to Access.

Since the last windowsupdate 10.10.2017, it is no longer possible to link excel files to Access 2000, or to open linked excel files

Since the last Windowsupdate 10.10.2017, it is no longer possible to link Excel files with Access 2000 or to open linked EXCEL files with Access 2000.

And in this comment there is a confirmation or a reference to an Excel database error.

Hello DKPrince,
we probably have the same problem here.
On all Windows 7 computers, we process address databases here, the database .xls can not be >> opened everywhere, since it is said to have no data fields.

In Excel itself, the address lists can be opened without problems, only if we want to link you for the serial letter creation comes a database error.

With .xlsx it goes immediately and with a conversion into a .csv it goes likewise. But we need machine-engineering .xls lists and this is a violent problem.

If someone has a solution, I am grateful for every tip.
Which patch do you have to uninstall again and how do you do it best?

The security updates for Windows 7 / 8.1 (October 2017) , the blog post, mentions that Microsoft patches the Microsoft JET Database Engine with KB4041681 and KB4041678 (Windows 7) as well as Update KB4041693 and KB4041687 (Windows 8.1). This is to close the following safety gaps.

  • CVE-2017-8717 - Microsoft JET Database Engine Remote Code Execution Vulnerability
  • CVE-2017-8718 - Microsoft JET Database Engine Remote Code Execution Vulnerability

In this heise.de forum post , however, a user complains that the Excel access in C # over Microsoft.Jet.OLEDB.4.0 no longer works. The error 0x80004005 (denied access) is reported when accessing the database driver in System.Data.OleDb.OleDbException . Also at askwoody.com there is this comment , which complains a broken Microsoft.Jet.OLEDB.4.0 database interface. No XLS files can be imported into an application (see also this article ). I am currently telling you that the problem for the above problems is to be found here.

Also here:

Problem importing XLS files

If you 're looking at problems importing XLS files into your applications, you are not alone. See this anonymous post on AskWoody:

Windows 7 for x64-based Systems KB4041681 and 2017-10 Security Only for Windows 7 for x64-based Systems KB4041678.

Yesterday we got bombarded with the problem that we can not import to xls file into our application, which we have been doing since forever. It gives an error: Unexpected error from external database driver (1). We dug deeper and discovered

Provider = Microsoft.Jet.OLEDB.4.0; DataSource = {0}; ExtendedProperties = \ "Excel 8.0; HDR = Yes; IMEX = 1 \"

Does not work anymore. After all, we'll get back to normal.

More here:

@mrworkman mrworkman added Confirmed and removed Bug labels Oct 14, 2017

@mrworkman mrworkman changed the title from Problem after windows update to Problem after windows update (Microsoft.Jet.OLEDB.4.0 no longer works) Oct 14, 2017

@adamswallows

This comment has been minimized.

Show comment
Hide comment
@adamswallows

adamswallows Oct 16, 2017

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.

adamswallows commented Oct 16, 2017

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.

@cpistiner

This comment has been minimized.

Show comment
Hide comment
@cpistiner

cpistiner Oct 18, 2017

I agree with @adamswallows

I'm using a custom build too.

cpistiner commented Oct 18, 2017

I agree with @adamswallows

I'm using a custom build too.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 20, 2017

Collaborator

This blog article popped up about this issue. It does confirm that this was an unintentional breakage, and that Microsoft is working on a fix:

This update (released October 10th, 2017) includes a security update release that inadvertently affects the JET provider

Apart from this, Microsoft is working on a resolution and will provide an update in an upcoming release of the security patch. This is expected to be available in another 2-3 weeks or earlier.

The article of course recommends switching to ACE since Jet was deprecated 15 years ago. To me it doesn't make sense to hack LinqToExcel to try to switch its default to use ACE instead of Jet. It makes more sense to completely remove support for Jet, and make ACE a hard requirement. Because this move removes support for a technology (in a sense), I think this should be a LinqToExcel version 2.0 sort of thing.

Look for a new release of LinqToExcel in the near future.

Collaborator

mrworkman commented Oct 20, 2017

This blog article popped up about this issue. It does confirm that this was an unintentional breakage, and that Microsoft is working on a fix:

This update (released October 10th, 2017) includes a security update release that inadvertently affects the JET provider

Apart from this, Microsoft is working on a resolution and will provide an update in an upcoming release of the security patch. This is expected to be available in another 2-3 weeks or earlier.

The article of course recommends switching to ACE since Jet was deprecated 15 years ago. To me it doesn't make sense to hack LinqToExcel to try to switch its default to use ACE instead of Jet. It makes more sense to completely remove support for Jet, and make ACE a hard requirement. Because this move removes support for a technology (in a sense), I think this should be a LinqToExcel version 2.0 sort of thing.

Look for a new release of LinqToExcel in the near future.

@cpistiner

This comment has been minimized.

Show comment
Hide comment
@cpistiner

cpistiner commented Oct 20, 2017

Thanks @mrworkman !!

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Oct 22, 2017

Collaborator

Support for Jet 4.0 has been removed from master (issue #131).

Collaborator

mrworkman commented Oct 22, 2017

Support for Jet 4.0 has been removed from master (issue #131).

@danieldiazastudillo

This comment has been minimized.

Show comment
Hide comment
@danieldiazastudillo

danieldiazastudillo Oct 31, 2017

@streppelchen Fix by specifying provider worked like a charm. Thanks a lot.

danieldiazastudillo commented Oct 31, 2017

@streppelchen Fix by specifying provider worked like a charm. Thanks a lot.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Nov 7, 2017

Collaborator

Looks like Microsoft had released patches for this, only to remove them later as they caused more problems than they solved: http://windowsreport.com/kb4052233-kb4052234-issues/ 🤦‍♂️

Collaborator

mrworkman commented Nov 7, 2017

Looks like Microsoft had released patches for this, only to remove them later as they caused more problems than they solved: http://windowsreport.com/kb4052233-kb4052234-issues/ 🤦‍♂️

@danieldiazastudillo

This comment has been minimized.

Show comment
Hide comment
@danieldiazastudillo

danieldiazastudillo Nov 7, 2017

🤦‍♂️ The "charm" i mentioned above it's a lot slower by the way, but it's working. We go from a 2 seconds bulk insert to 22 seconds.

danieldiazastudillo commented Nov 7, 2017

🤦‍♂️ The "charm" i mentioned above it's a lot slower by the way, but it's working. We go from a 2 seconds bulk insert to 22 seconds.

@emoreau99

This comment has been minimized.

Show comment
Hide comment
@emoreau99

emoreau99 Nov 10, 2017

It looks like using the Ace engine prevents me from using GetColumnNames. Any workaround?

emoreau99 commented Nov 10, 2017

It looks like using the Ace engine prevents me from using GetColumnNames. Any workaround?

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Nov 11, 2017

Collaborator

On Windows 10, this issue should be fixed with KB4052231. For other Windows versions, MS is targeting Nov 14th.

Collaborator

mrworkman commented Nov 11, 2017

On Windows 10, this issue should be fixed with KB4052231. For other Windows versions, MS is targeting Nov 14th.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Nov 11, 2017

Collaborator

It looks like using the Ace engine prevents me from using GetColumnNames. Any workaround?

This should not be the case. The latest master uses Ace, and it does not seem to be an issue there.

Collaborator

mrworkman commented Nov 11, 2017

It looks like using the Ace engine prevents me from using GetColumnNames. Any workaround?

This should not be the case. The latest master uses Ace, and it does not seem to be an issue there.

@emoreau99

This comment has been minimized.

Show comment
Hide comment
@emoreau99

emoreau99 Nov 13, 2017

This should not be the case. The latest master uses Ace, and it does not seem to be an issue there.

The latest master is not the version 1.11 available through NuGet?

emoreau99 commented Nov 13, 2017

This should not be the case. The latest master uses Ace, and it does not seem to be an issue there.

The latest master is not the version 1.11 available through NuGet?

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Nov 13, 2017

Collaborator
Collaborator

mrworkman commented Nov 13, 2017

@emoreau99

This comment has been minimized.

Show comment
Hide comment
@emoreau99

emoreau99 Nov 15, 2017

I have downloaded and compiled my own. It works, including GetColumnNames, like a charm! Thanks.

emoreau99 commented Nov 15, 2017

I have downloaded and compiled my own. It works, including GetColumnNames, like a charm! Thanks.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Nov 15, 2017

Collaborator

Windows Fixes

Please give these Windows patches a try, and let me know if they resolve your Jet issues.

(source)

OS Windows Patch(es)
Windows 7/2008 R2 Monthly Roll-up | Security-only update
Windows 2012 Monthly Roll-up | Security-only update
Windows 8.1 and 2012 R2 Monthly Roll-up | Security-only update
Windows 10 Creators' Update (v1511) KB4048952
Windows 10 Anniversary Update (v1607), and Server 2016 KB4048953
Windows 10 (v1703) KB4048954
Collaborator

mrworkman commented Nov 15, 2017

Windows Fixes

Please give these Windows patches a try, and let me know if they resolve your Jet issues.

(source)

OS Windows Patch(es)
Windows 7/2008 R2 Monthly Roll-up | Security-only update
Windows 2012 Monthly Roll-up | Security-only update
Windows 8.1 and 2012 R2 Monthly Roll-up | Security-only update
Windows 10 Creators' Update (v1511) KB4048952
Windows 10 Anniversary Update (v1607), and Server 2016 KB4048953
Windows 10 (v1703) KB4048954
@MacMcDell

This comment has been minimized.

Show comment
Hide comment
@MacMcDell

MacMcDell Jan 19, 2018

Hi. Can you throw some advice here? I compiled from your master branch the linqToExcel, Remotion.dll, Remotion.Data.Linq.dll that it compiles as it seems from the above that you believe your master branch is resolving the Jet Database Error.
My Unit Tests are passing using both a csv and an xlsb. When I try and do the exact same thing from my console app I get the following:
"System.Data.OleDb.OleDbException
HResult=0x80004005
Message=Invalid argument.
Source=System.Data
StackTrace:
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)...."
My Console app is building x86 the same as my unit tests. I cannot get this thing to work.
Any idea on what might be going on. I haven't applied the 954 patch for windows 10 as it seems you indicated there was a fix in your master.

Thanks
Mac

MacMcDell commented Jan 19, 2018

Hi. Can you throw some advice here? I compiled from your master branch the linqToExcel, Remotion.dll, Remotion.Data.Linq.dll that it compiles as it seems from the above that you believe your master branch is resolving the Jet Database Error.
My Unit Tests are passing using both a csv and an xlsb. When I try and do the exact same thing from my console app I get the following:
"System.Data.OleDb.OleDbException
HResult=0x80004005
Message=Invalid argument.
Source=System.Data
StackTrace:
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)...."
My Console app is building x86 the same as my unit tests. I cannot get this thing to work.
Any idea on what might be going on. I haven't applied the 954 patch for windows 10 as it seems you indicated there was a fix in your master.

Thanks
Mac

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Aug 26, 2018

Collaborator

Hi @MacMcDell, sorry for not responding sooner. Without seeing the whole stack trace, it's difficult to tell where the problem you ran into lies. If you run into this problem again, please open a new issue.

Collaborator

mrworkman commented Aug 26, 2018

Hi @MacMcDell, sorry for not responding sooner. Without seeing the whole stack trace, it's difficult to tell where the problem you ran into lies. If you run into this problem again, please open a new issue.

@mrworkman

This comment has been minimized.

Show comment
Hide comment
@mrworkman

mrworkman Aug 26, 2018

Collaborator

Closing this issue since no one seems to be complaining about it any more 😁

Collaborator

mrworkman commented Aug 26, 2018

Closing this issue since no one seems to be complaining about it any more 😁

@mrworkman mrworkman closed this Aug 26, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment