Sanal boyutları ile çalışma
Not
Bu özellik Microsoft SQL Server'ın bir sonraki sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.
Karar destek nesneleri (dso) sanal boyutları oluşturma adımlarını olanlar normal boyut oluşturmak için kullanılan benzer.Başka bir boyut sütunları temel alan bir sanal boyut oluşturmak için normal boyut oluşturmak, ancak küme IsVirtual özelliğini true değerine ve küme DependsOnDimension özellik adına kaynak boyut.Normal Boyut üye özelliklerine göre bir sanal boyut oluşturmak çok daha karmaşıktır.Yordam, bu konunun sonundaki kod örneğinde gösterilmiştir.
Sanal boyutları farklar
Bir sanal boyut içeriğini varolan bir boyutun üzerinde esas aldığından, çoğu sanal boyut nesnesi ve alt düzey nesneleri için özellikleri salt okunurdur ve boyut işlenmeden önce küme olması gerekmez.Diğer özellikler boyut ve düzey nesneleri için olması gereken küme sanal boyut için kaynak verileri sağlayan temel alınan boyut ve/veya üye özellikleri belirtmek için.
Aşağıdaki tablo salt okunur veya yoksayılan sanal boyutlar için boyut ve düzey özellikleri listeler.
Nesne özellik |
Açıklama |
---|---|
Dimension.FromClause |
Salt okunur.Alınır kaynak boyut. |
Dimension.IsChanging |
Microsoft ® sql Server ™ 2000 Analysis Services kullanılarak oluşturulan sanal boyut için her zaman true. |
Dimension.JoinClause |
Salt okunur.Alınır kaynak boyut. |
Dimension.StorageMode |
Her zaman storeasMOLAP için sanal bir boyut. |
Dimension.SourceTableFilter |
Salt okunur.Alınır kaynak boyut. |
Dimension.SourceTableAlias |
Salt okunur.Alınır kaynak boyut. |
Level.EstimatedSize |
Bir sanal boyut içinde bir düzey için kullanılmaz. |
Level.Grouping |
Her zaman groupingNone düzey sanal boyut. |
Level.HideMemberIf |
Her zaman hideNever düzey sanal boyut. |
Bir sanal boyut ekleme
Aşağıdaki kod örneği, sanal bir boyut oluşturmak için kullanın.Sanal Boyut hariç de belirtildiği gibi tablo, diğer bir boyutu kabul edilir.
Aşağıdaki kod örneği sqft sanal boyut depolama boyutu oluşturur TestDB veritabanı.Bu sanal boyut depoları kaynak boyut deposu sqft bir üye özellik dayanır:
Private Sub AddVirtualDimension()
Dim dsoServer As New DSO.Server
Dim dsoDB As DSO.MDStore
Dim dsoDS As DSO.DataSource
Dim dsoDim As DSO.Dimension
Dim dsoLevel As DSO.Level
Dim strDBName As String
Dim strLQuote As String
Dim strRQuote As String
' Define constants used for the ColumnType property
' of the DSO.Level object.
' Note that these constants are identical to
' those used in ADO in the DataTypeEnum enumeration.
Const adDouble = 5
' Initialize variable for the database.
strDBName = "TestDB"
' Create a connection to the Analysis server.
dsoServer.Connect "LocalHost"
' Ensure that the server has an existing database.
If dsoServer.MDStores.Find(strDBName) = False Then
MsgBox "Database " & strDBName & _
" is not found."
Else
' Retrieve the database from the server.
Set dsoDB = dsoServer.MDStores(strDBName)
' Retrieve a data source from the database.
Set dsoDS = dsoDB.DataSources("FoodMart")
' Get the delimiter characters from the data source.
strLQuote = dsoDS.OpenQuoteChar
strRQuote = dsoDS.CloseQuoteChar
' Create the new dimension in the Dimensions
' collection of the database object.
Set dsoDim = dsoDB.Dimensions.AddNew("Store Size in SQFT")
' Set the description of the dimension.
dsoDim.Description = "The Store Size in SQFT virtual dimension"
' Set the data source of the dimension.
Set dsoDim.DataSource = dsoDS
' Set the dimension type, make it virtual,
' and identify its underlying source dimension.
dsoDim.DimensionType = dimRegular
dsoDim.IsVirtual = True
dsoDim.DependsOnDimension = "Stores"
' Next, create the levels.
' Start with the (All) level.
Set dsoLevel = dsoDim.Levels.AddNew("(All)")
' Set the level type.
dsoLevel.LevelType = levAll
' Set the MemberKeyColumn of the (All) level to a constant
' that also acts as the name of the level's only member.
dsoLevel.MemberKeyColumn = "(All Store Sizes)"
' Create the Store SQFT level. This holds the SQFT value.
Set dsoLevel = dsoDim.Levels.AddNew("Store Size")
' Name the source column for this level.
' The format for this is "table_name"."column_name".
' Database-specific delimiter characters are required.
dsoLevel.MemberKeyColumn = strLQuote & "store" & strRQuote & "." & _
strLQuote & "store_sqft" & strRQuote
' Set the following properties to be identical to their
' counterparts in the member property object that provides
' this level with its data.
dsoLevel.ColumnType = adDouble
dsoLevel.ColumnSize = 4
' Check to see that you set the level and
' dimension properties correctly, and that the rest
' of the dimension structure is correct. If so,
' update the repository and exit the function.
If dsoLevel.IsValid And dsoDim.IsValid Then
' Update the dimension.
dsoDim.Update
' Inform the user.
MsgBox "Virtual dimension has been added."
End If
End If
End Sub