This article was previously published under Q293641
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 11210 (Plato7.x) BUG #: 11281 (Plato7.x)
When you process a dimension or cube through an ASP page by using Decision Support Objects (DSO), the processing fails with the following error messages:
DSO error '80040051' Cannot open database 'Database Name' on the Analysis server
Could not Initialize Database 'Database Name'
To resolve this problem, obtain the latest service pack for the Microsoft SQL Server 2000 (the Analysis Services Components - Sql2kasp1.exe). For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
Microsoft has confirmed that this is a problem in SQL Server 2000 Analysis Services version 8.0. This problem was first corrected in the Analysis Services Components of Microsoft SQL Server 2000 Service Pack 1.
When processing a cube or dimension through the Web by using Microsoft Visual Basic script in an ASP page to make calls to a DSO DLL file, the error messages listed in the "Symptoms" section occur. The error messages occur when the Internet Information Server (IIS) property Application Isolation is set to Medium or High. The error messages do not display if you execute the code only through Microsoft Visual Basic or Microsoft VBScript, but they will occur if you use ASP.
Steps to Reproduce Behavior
Create a DLL file by using the following Visual Basic code:
** Visual Basic DSO COM component: Private dsoServer As DSO.Server Private dsoDB As DSO.MDStore Private dsoCube As DSO.MDStore Private dsoDim As DSO.Dimension Private strDBName As String 'Private dsoMea As DSO.Measure '/* ' Project Name: ProcessDimension ' Class Name: clsProcessDim ' Description: VB ActiveX COM wrapper for DSO. '*/ Public Function ProcessDimension() As Boolean 'This sample is based on the FoodMart database. On Error GoTo errProcessDimension strDBName = "FoodMart 2000" Set dsoServer = New DSO.Server dsoServer.Connect ("LocalHost") Set dsoDB = dsoServer.MDStores("FoodMart 2000") Set dsoCube = dsoDB.MDStores(1) Set dsoDim = New DSO.Dimension 'Debug.Print dsoDB.Dimensions.Count 'Need to process Dimension based on Database.Dimension collection.For Each dsoDim In dsoDB.Dimensions If dsoDim.Name = "Promotions" Then dsoDim.Process processRefreshData ProcessDimension = True Exit For End If Next 'You could processFull on the Cube here if needed. 'dsoCube.Process processRefreshData ProcessDimension = True Exit Function errProcessDimension: ProcessDimension = False Err.Raise Err.Number, Err.Source, Err.Description End Function
Use the following code, and create an ASP page:
** ASP code: <HTML> <BODY> <%@ Language=VBScript %> <% dim objCubeProc dim blnResult set objCubeProc = Server.CreateObject("ProcessDimension.clsProcessDim") blnResult = objCubeProc.ProcessDimension if blnResult=True then Response.Write "Done..." else Response.Write "Error..." end if %> </BODY> </HTML>
Register the DLL you created in step 1 on the same computer as Internet Information Server (IIS) and Analysis Services.
Place the ASP page in the WWWROOT folder, and then set the Application Isolation property to HIGH.
Load the ASP page into Microsoft Internet Explorer.
NOTE: If your repository is stored in the default Msmdrep.mdb file, you may need to reduce the security to the file in order for the processing of the cube or dimension through a ASP page to work correctly. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
293782 BUG: Can Only Administer Analysis Server if User is a Member of Administrators Group
DSO error 80040051 Cannot open database Could not Initialize OLAP