We have some processes developed which import Excel-files, for example for Sales Order creation.
This process looks like:
- Excel-file will be placed on a network-location
- 1 time per minute a Microsoft SQL Agent job will run and determine if there is a file in the network folder
- if there is a Excel-file in the folder, some T-SQL code will open this file via an OPENROWSET action (using ACE OLEDB 16.0, and modified registry setting TypeGuessRows from 8 to 1 to support more rows to be analyzed for data type determination)
- the data of the excel-file will be stored in a general Import-table
- a procedure will then analyze the new imported data based on predefined rules per customer
So we have several templates to import for the Sales Orders as several customers want to use their own Excel-file format.
Then the issue we have:
Now and then (say once per year), the ACE OLEDBD-drive in MS SQL Server will stop working out of a sudden by also providing the following error-message: Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.16.0" for linked server "(null)".
The only way to ‘solve’ the issue then is to reboot the full MS SQL Server.
Looking at the information Microsoft is proving regarding the usage of the ACE component (https://www.microsoft.com/en-us/download/details.aspx?id=54920), it is stating that the component shouldn't be used by system-services or service-side programs.
So my question is if there are some best-practices in automated importing Excel-files into a Thinkwise end-application which we can consider to make our process more stable.
Thanks.