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.

Steps:

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