Description:
This function reads a point from a PowerOLAP database on the specified server. You must specify the server, database and cube to read from. You must specify a member for each dimension in the cube. Important: The members must be in the exact order of the dimensions in the remote cube.
The DBRead function allows the user to pull in values from any PowerOLAP database that is opened on a server to which the user is connected. This function then connects to a cube in the database specified that resides on a particular server, and then it selectively pulls in the data that you require from a particular dimension's member / members and brings this data into the currently opened PowerOLAP database. The current cube in PowerOLAP, where the formula is written, is where the "read" values are stored. This implies that once the DBRead function reads values from the source PowerOLAP database, then in order to access these values they need to be stored in a location and the location is a cube in PowerOLAP. The dimensions and their members in the cube in PowerOLAP must be an imitation of the dimensions and the members of the source cube in the source database (that is accessed through the parameters to this function), from where we are pulling in data. They also must be created in the same order of the dimensions in the remote cube. Although the cube in PowerOLAP must contain all the dimensions that exist within the source cube, however those dimensions need not contain all the members in the analysis services cube. You may create only those members within which you want to populate values, and display the same. These member names in which you pull in values, must match exactly with the member names in the source database and even a small typing error can be responsible for not pulling in values from the source cube because an exact match is completely necessary.
Syntax: DBREAD (server, database, cube, member1, member2,…)
Remarks
Example
Let us create a new database to illustrate this example. This database is named "CrossDBServicesinPO" and contains a cube called "DBReadCube". The dimensions and their members in the "DBReadCube" are an imitation of the dimensions and the members of the source cube in the source database that resides on the PowerOLAP Server that is also specified here as a parameter. In this case, for the example the PowerOLAP Server is called "Escher" and the database residing on it is called "HumanResources" and it is from here that we are pulling in data. In this example we are pulling in data into our cube in PowerOLAP from the above mentioned database and in this instance we are using the "HR" cube that exists within this database. Therefore the cube "DBReadCube" in PowerOLAP is a replica of the "HR" cube in the other PowerOLAP database called "HumanResources".
This formula above reads values from the "HumanResources" database that resides on the server, namely, "Escher". The cube that is read from this database is the "HR" cube and for the member names, since we require all the values of all members to be pulled into this database in PowerOLAP therefore we make use of the current function, which ensures that the member name being read by the DBRead function, is the currently selected member name, and when the selection changes the value is also updated. In this way the DBRead function accesses the values from another PowerOLAP database.