Saturday, February 25, 2012

Repost for discussion on the error of SQLNCLI.1

Hi There,

I still got the following error:

OLE DB error: OLE DB or ODBC error: Could not locate registry entry for OLE DB provider 'SQLNCLI.1'.; 42000; OLE DB error trace [Non-interface error: Provider not registered.].; 01000.

I am running sql 2005 sp2, and the error happens when I try to drop one of attribute in my dimension table to the cube browser inside AS 2005, for example, I have one dimension call Customer with two attribute customercode and customername, along with fact table with sales amount, and I can drop customercode attribute into the cube browser without any problem, display cross join correctly with customercode as rows and sales amount.

But when I drop customername attribute into it, it gave me the above error, is this the bug? I did the .udl file to test the SNAC and everything works, I can connect to the data source using SNAC.

Running sql profiler againist AS 2005 showing same error. I did have mutiple data sources, but one DSV in the project.

Any other advice?

Thanks

Don

Are you using a ROLAP dimension? If so do you have the SQL native client installed on the server?|||

Hi Darren,

Thanks for the reply, no, I am not using rolap, everything is molap. sql native client is installed since other attribute works fine when dropping to the cube browser. This just drives me nuts.

Thanks for any pointer.

Don

|||Sorry, but that was really the only reason I could think of that browsing a cube would try to access the SQLNCLI.1 (SQL Native client) provider. If you are only using MOLAP storage it should only need the MSOLAP OLE DB provider.|||

Thanks Darren for your help.

All my data sources connect to SQL 2000 databases in another server, is this going to be the issue?

|||

Also here is the MDX query I capture from Profiler for the error message, notcie OPENROWSET(N'SQLNCLI.1',N'',N'SELECT is used:

SELECT SUM ( [FactPhysicianProcedure].[FactPhysicianProcedureTotalCharge0_0] ) AS [FactPhysicianProcedureTotalCharge0_0],
SUM ( [FactPhysicianProcedure].[FactPhysicianProcedureBalance0_6] ) AS [FactPhysicianProcedureBalance0_6],COUNT_BIG ( [FactPhysicianProcedure].[FactPhysicianProcedure0_7] )
AS [FactPhysicianProcedure0_7],[dbo_MisService_6].[dbo_MisServiceName1_0] AS [dbo_MisServiceName1_0] FROM
(SELECT [TotalCharge] AS [FactPhysicianProcedureTotalCharge0_0],[Balance] AS
[FactPhysicianProcedureBalance0_6],1 AS [FactPhysicianProcedure0_7],[InptService] AS [FactPhysicianProcedureInptService0_8] FROM
(SELECT w.OperSurgeon, u.AccountNumber, w.OperProcSeqNoAbsPat AS OperProcSeqNo, w.OperProc, CAST(o.Drg AS varchar(4)) AS Drg, u.Age, u.DisMonth,
u.Sex, u.Zip_PostalCode, g.InptService, u.FinancialClass, v.AdmitPhysMnemonic, g.PtStatus, u.DisDate, u.DisYear, u.DisQuarter,u.DisMonth AS Month, DATEPART(day, u.DisDate) AS DisDay,
g.TotalCharge, u.LOS, g.TotalInsExpReimb, g.TotalInsRcpt, g.TotalCost, g.TotalInsAdj, g.Balance FROM dbo.TSG_PatientInformation AS u INNER JOIN
dbo.TSG_Procedures AS w ON u.UrnABS = w.UrnABS INNER JOIN dbo.TSG_Physicians AS v ON u.UrnABS = v.UrnABS INNER JOIN dbo.TSG_DrgData AS o ON u.UrnABS = o.UrnABS INNER JOIN dbo.TSG_BarAccountData AS g ON u.UrnABS = g.UrnABS) AS [FactPhysicianProcedure]) AS [FactPhysicianProcedure],

OPENROWSET(N'SQLNCLI.1',N'',N'SELECT [Name] AS [dbo_MisServiceName1_0],[MnemonicMISSVCDICT]
AS [dbo_MisServiceMnemonicMISSVCDICT1_1]
FROM [dbo].[MisService]') AS [dbo_MisService_6] WHERE (([FactPhysicianProcedure].[FactPhysicianProcedureInptService0_8]
=[dbo_MisService_6].[dbo_MisServiceMnemonicMISSVCDICT1_1]))
GROUP BY [dbo_MisService_6].[dbo_MisServiceName1_0]

No comments:

Post a Comment