Tuesday, November 4, 2008

SSIS Tip: Avoid "An OLE DB record is available...Hresult: 0x80040154.Class not registered"

 had a SSIS Package to read the data from MDB(Microsoft Access File) and UPSERT into my SQL 2005 tables. I used OLEDB Source as Source Connection Type. This worked fine when executed through BIDS. But when I scheduled this Package in SQL Server Jobs, it failed with the following exception:

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040154.
An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

Then I found that this error occurs in 64bit MS SQL 2005 Edition. There was a suggestion that this type of package should be executed using explicit command to use DTExec.EXE in the Job Type.


1.Choose 'Operating System(CmdExec)' as the Job Step Type instead of the Regular 'SQL Server Integration Services Pakcage' type
2.Use the following command :
Command : "D:\Program Files\Microsoft SQL Server (x86)\90\DTS\Binn\DTExec.exe" /SQL "\MIS\IncrementalLoad"

Note: This file path should be your machine path of DTExec.exe

I did that and it worked for me.

No comments:

Post a Comment