Aracılığıyla paylaş


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