Working with Data Sources (DSO)
Note
This feature will be removed in the next version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.
Collections of data sources (that is, MDStore objects of ClassType clsDataSource) are contained in MDStore objects of ClassType clsDatabase, clsCube,and clsPartition. Each object's data source specifies an external database that will be used as the source of data.
A database can contain multiple data sources in its DataSources collection. However, each cube and partition contains only a single data source.
The two examples in this topic demonstrate how to list and add a data source to the database's DataSources collection.
List Data Sources
The easiest way to list data sources is to iterate through the DataSources collection of an MDStore database object, as shown in the following code example which lists the Name and ConnectionString properties of each data source for every database on a given Analysis server.
The following code example loops through the DataSources collection of each database on the local Analysis server, printing some of the basic properties for each data source in the Immediate window:
Private Sub ListDataSources()
Dim dsoServer As New dso.Server
Dim dsoDB As dso.MDStore
Dim dsoDS As dso.DataSource
' Create a connection to the Analysis server.
dsoServer.Connect "LocalHost"
' Step through the databases in the
' MDStores collection of the server.
For Each dsoDB In dsoServer.MDStores
' Print the name & description of the database.
Debug.Print "DATABASE: " & dsoDB.Name & " - " & _
dsoDB.Description
' Determine whether the database has data sources.
If dsoDB.DataSources.Count = 0 Then
Debug.Print " Data source: None"
Else
' Iterate through and print the data source
' information.
For Each dsoDS In dsoDB.DataSources
Debug.Print " Data source: " & dsoDS.Name
Debug.Print " Valid?:" & dsoDS.IsValid
Next
End If
Next
End Sub
Add a Data Source
The process to add a new data source is similar to the process for adding a new database. The AddNew method of the DataSources collection for a given database creates a new data source for the database.
The following code example adds a data source named FoodMart to the TestDB database object on the local Analysis server:
Private Sub AddDataSource()
Dim dsoServer As New DSO.Server
Dim dsoDB As DSO.MDStore
Dim dsoDS As DSO.DataSource
Dim strDBName As String
Dim strDSName As String
Dim strDSConnect As String
' Initialize variables for the database name,
' data source name, and the ConnectionString property
' for the data source.
strDBName = "TestDB"
strDSName = "FoodMart"
strDSConnect = "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog=FoodMart;" & _
"Data Source=FoodMartServer;" & _
"Connect Timeout=15"
' Create a connection to the Analysis server.
dsoServer.Connect "LocalHost"
' Locate the database first.
If dsoServer.MDStores.Find(strDBName) Then
Set dsoDB = dsoServer.MDStores(strDBName)
' Check to see whether the data source already exists.
If dsoDB.DataSources.Find(strDSName) Then
MsgBox "Data source " & strDSName & _
" already exists for database " & strDBName
Else
' Create a new data source.
Set dsoDS = dsoDB.DataSources.AddNew(strDSName)
' Add the ConnectionString properties
dsoDS.ConnectionString = strDSConnect
' Update the data source.
dsoDS.Update
' Inform the user
MsgBox "Data source " & strDSName & _
" has been added to database " & strDBName
End If
Else
MsgBox strDBName & " is missing."
End If
End Sub
See Also
Other Resources
Data Sources (Analysis Services)