Aracılığıyla paylaş


Olayları (dso)

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) doğrudan olay yakalama destekler yalnızca nesne Database nesne.Bu nesnenin tüm alt nesnelerine paylaşılan boyutları, küpler, bölümler, toplamalardan ve veri madenciliği modelleri de dahil olmak üzere, olay tetikler.

Aşağıdaki tablo bu nesne destekleyen olayları listeler.

Olay

Açıklama

ReportAfter

Her veritabanındaki bir nesnede bir işleme eylem tamamlamadığını adlı

ReportBefore

Önce veritabanındaki bir nesnede bir işleme eylem denir.

ReportError

Bir işleme eylem sırasında bir hata oluştuğunda olarak adlandırılır.

ReportProgress

İlerleme durumunu raporlamak için adı verilen bir eylem bir işleme sırasında

Eylemler işleniyor

Her olay işleme durumunu bildirir eylem.Bu işleme eylem tamsayı sabitler tarafından temsil edilir.Zamanın her işleme eylem için yakalanan olay üzerinde bağlıdır.İçin örnek, mektup birleştirme eylemini (mdactMerge) raporları iki bölüm veya toplamalardan içinde yakalanan zaman bemerged olur ReportBefore olay.Aksine, bu aynı eylem zaman içinde yakalanan iki bölüm veya toplamalardan birleştirilmiştir raporları ReportAfter olay.

Veritabanı nesnesi olayları tarafından desteklenen eylemler listesi aşağıdadır:

Eylem

Sabit

Açıklama

İşlem

mdactProcess

Nesne tarafından başvurulan olduğunu gösterir obj işlenmiştir.

Birleştirme

mdactMerge

İki bölüm veya toplamalardan birleştirilmiş olan raporlar.

Sil

mdactDelete

Bir nesne silindi gösterir.

Eski toplamalardan Sil

mdactDeleteOldAggregations

Varolan ilişkisel olap (rolap) toplamalardan bir bölümünün silindiğini gösterir.

Yeniden oluşturma

mdactRebuild

Nesne tanımları yeniden gösterir.

Tamamlama

mdactCommit

Veritabanı üzerinde bir işlem tamamlanmış olduğunu belirtir.

Geri alma

mdactRollback

Veritabanı üzerinde bir işlem geri alındı raporları.

Dizinler oluşturma

mdactCreateIndexes

rolap toplama için dizinleri oluşturulup oluşturulmadığını gösterir.

Tablo oluşturma

mdactCreateTable

Raporu toplama tablo için rolap toplama oluşturuldu.

Takın

mdactInsertInto

rolap bölüm için toplama tablo doldurulduğunu gösterir.

Transaction

mdactTransaction

Raporları bir hareket, tamamlandı, başlatıldı veya bir özel durumla karşılaştı.

Başlatma

mdactInitialize

Nesne tarafından başvurulan olduğunu gösterir obj parametresi başlatıldı.

Görünüm oluşturma

mdactCreateView

Toplama görünümü için rolap toplama oluşturulduğunu bildirir.Bu eylem, yalnızca Microsoft ® sql Server ™ 2005'te ile rolap küp işlem dizin oluşturulmuş görünümler kullanırken geçerlidir.

Veri yaz

mdactWriteData

Veri diskine yazılmış.

Veri Okuma

mdactReadData

Diskten veri okuma vardır.

Aggregate

mdactAggregate

Toplamalardan oluşturuluyor.

sql Yürüt

mdactExecuteSQL

Bir sql deyim çalıştırıldı.

Şimdi sql yürütme

mdactNowExecutingSQL

Bir sql deyim yürütme iptal edilebilir.

Değiştirilmiş sql yürütme

mdactExecuteModifiedSQL

Değiştirilmiş bir sql deyim çalıştırıldı.

Satır etkilendi.

mdactRowsAffected

Bir sql deyim tarafından etkilenen satırların sayısını raporlar.

Hata

mdactError

İşleme sırasında hata oluştuğunu gösterir.

Toplamalardan ve dizinlerin yazma

mdactWriteAggsAndIndexes

Dizinler ve toplamalardan diske yazılır.

Kesim yazmak

mdactWriteSegment

Segmentleri diske yazılır.

Veri madenciliği Model işlenen yüzdesi

mdactDataMiningProgress

Veri işleme tamamlanma durumunu araştırma modeli yüzde bakımından.

Hakkında daha fazla bilgi için Database , nesne Bkz: clsDatabase.

Öğretici - bindirme veritabanı olayları

Aşağıdaki öğretici bindirme işleme olaylarını gösterir.Örneklerde a c ile bir Microsoft Visual Basic ® proje dosyası örnekleri geri kalanı kullanmak için gereken tüm bilgileri içeren küme.Her veritabanı nesnesinden kullanılabilen olayları yakalama g d örneklerle gösterilmektedir.

A.Proje dosyasını ayarlama

  1. Visual Basic'i başlatın ve Project1 adlı yeni bir proje oluşturun.

  2. De Project References Seç iletişim kutusunda Microsoft Decision Support Objects onay kutusu.

  3. De Project Components iletişim kutusunda'ı Microsoft Windows Common Controls 6.0 (SP3).

  4. Adı verilen yeni bir modül oluşturun Module1.

  5. Adı verilen yeni bir form oluşturmak Form1.

  6. Bir metin kutusu adlı bir form ekleyin Text1.

  7. Olarak adlandırılan bir düğme eklemek Command1 form ve etiket onu "Process".

  8. Adı verilen başka bir düğme eklemek Command2 form ve etiket "İptal".

  9. Adlı bir ilerleme çubuğu denetimi ekleme ProgressBar1.

  10. Formun genel tanımlamalar bölümüne aşağıdaki kodu ekleyin:

    Option Explicit
    
    'Declare a database object with events.
    Public WithEvents dsoDb As DSO.Database
    
    'Declare some useful variables and constants.
    Public gCubeMaxRows As Long
    Public gbCancel As Boolean
    Private Const SERVER_NAME = "LocalHost"
    Private Const DATABASE_NAME = "FoodMart 2000"
    

B.Page_Load olay ve düğme ekleme, olaylar'ı tıklatın

  • Form için aşağıdaki kodu ekleyin:

    Private Sub Command1_Click()
      gbCancel = False
      ProcessDatabase DATABASE_NAME
    End Sub
    
    Private Sub Command2_Click()
      gbCancel = True
    End Sub
    
    Private Sub ProcessDatabase(strDBName As String)
    Dim dsoServer As New DSO.Server
    Dim dsoDatabase As DSO.MDStore
    Dim dsoCube As DSO.MDStore
    Dim dsoMiningModel As DSO.MiningModel
    
      Screen.MousePointer = vbArrowHourglass
      'Connect to the server.
      dsoServer.Connect (SERVER_NAME)
    
      'Get a reference to the database.
      Set dsoDatabase = dsoServer.MDStores(strDBName)
      'Copy the database reference.
      Set dsoDb = dsoDatabase
    
      'Process each of the cubes in the database.
      For Each dsoCube In dsoDatabase.MDStores
        Text1.Text = Text1.Text & "Processing Cube " & dsoCube.Name & vbCrLf
        gCubeMaxRows = dsoCube.EstimatedRows
        dsoCube.Process
        Text1.Refresh
      Next
      Screen.MousePointer = vbNormal
    End Sub
    

C.ProcessDatabase yordam ekleme

  • Form için aşağıdaki kodu ekleyin:

    Private Sub ProcessDatabase(strDBName As String)
    Dim dsoServer As New DSO.Server
    Dim dsoDatabase As DSO.MDStore
    Dim dsoCube As DSO.MDStore
    
      Screen.MousePointer = vbArrowHourglass
      'Connect to the server.
      dsoServer.Connect (SERVER_NAME)
    
      'Get a reference to the database.
      Set dsoDatabase = dsoServer.MDStores(strDBName)
      'Copy the database reference.
      Set dsoDb = dsoDatabase
    
      'Process each of the cubes in the database.
      For Each dsoCube In dsoDatabase.MDStores
        Text1.Text = Text1.Text & "Processing Cube " & dsoCube.Name & vbCrLf
        gCubeMaxRows = dsoCube.EstimatedRows
        dsoCube.Process
        Text1.Refresh
      Next
      Screen.MousePointer = vbNormal
    End Sub
    

D.ReportBefore olay işleyicisi ekleme

  • Form için aşağıdaki kodu ekleyin:

    Private Sub dsoDb_ReportBefore(obj As Object, ByVal Action As Integer, Cancel As Boolean, Skip As Boolean)
    Dim strNew As String
    
    
      strNew = strNew & " Beginning Action = " & ConvertAction(Action) & " - on object "
    
      'What if the object doesn't have a name property?
      On Error Resume Next
      'Get the name of the object.
      strNew = strNew & obj.Name & "."
    
      Text1.Text = Text1.Text & vbTab & strNew & vbCrLf
      Form1.Refresh
    End Sub
    

E.ReportAfter olay işleyicisi ekleme

  • Form için aşağıdaki kodu ekleyin:

    Private Sub dsoDb_ReportAfter(obj As Object, ByVal Action As Integer, ByVal success As Boolean)
    Dim strNew As String
    
      'What if the object doesn't have a name property?
      On Error Resume Next
      'Get the name of the object.
      strNew = "Processing object """ & obj.Name & """"
    
      strNew = strNew & " Action = " & ConvertAction(Action) & " - "
    
      'Determine the success of the operation.
      If success = True Then
        strNew = strNew & " was successful."
      Else
        strNew = strNew & " was unsuccessful."
      End If
    
      Text1.Text = Text1.Text & vbTab & strNew & vbCrLf
      Form1.Refresh
    
    End Sub
    

F.ReportProgress olay işleyicisi ekleme

  • Form için aşağıdaki kodu ekleyin:

    Private Sub dsoDb_ReportProgress(obj As Object, ByVal Action As Integer, Counter As Long, Message As String, Cancel As Boolean)
    Dim strNew As String
    
     'See if the user has canceled.
     Cancel = gbCancel
    
      strNew = strNew & vbTab & " Progress of Action " & ConvertAction(Action)
      'What if the object doesn't have a name property?
      On Error Resume Next
      'Get the name of the object.
      strNew = strNew & "on object " & obj.Name & ". "
      strNew = strNew & Counter & " - " & Message
    
      'Update the progress bar.
      ProgressBar1.Max = gCubeMaxRows
      ProgressBar1.Value = Counter
    
      Text1.Text = Text1.Text & vbTab & strNew & vbCrLf
      Form1.Refresh
    End Sub
    

G.ReportError olay işleyicisi ekleme

  • Form için aşağıdaki kodu ekleyin:

    Private Sub dsoDb_ReportError(obj As Object, ByVal Action As Integer, ByVal ErrorCode As Long, ByVal Message As String, Cancel As Boolean)
    Dim strNew As String
    
    
      strNew = strNew & " ERROR #" & ErrorCode
    
      'What if the object doesn't have a name property?
      On Error Resume Next
      'Get the name of the object.
      strNew = strNew & " on object " & obj.Name & ". "
    
      strNew = strNew & " - " & Message
    
      Text1.Text = Text1.Text & strNew & vbCrLf
      Form1.Refresh
    End Sub
    

H.ConvertAction işlev ekleme

  • Aşağıdaki kodu modüle ekleyin:

    Public Const mdactProcess = 1
    Public Const mdactMerge = 2
    Public Const mdactDelete = 3
    Public Const mdactDeleteOldAggregations = 4
    Public Const mdactRebuild = 5
    Public Const mdactCommit = 6
    Public Const mdactRollback = 7
    Public Const mdactCreateIndexes = 8
    Public Const mdactCreateTable = 9
    Public Const mdactInsertInto = 10
    Public Const mdactTransaction = 11
    Public Const mdactInitialize = 12
    Public Const mdactCreateView = 13
    
    Public Const mdactWriteData = 101
    Public Const mdactReadData = 102
    Public Const mdactAggregate = 103
    Public Const mdactExecuteSQL = 104
    Public Const mdactNowExecutingSQL = 105
    Public Const mdactExecuteModifiedSQL = 106
    Public Const mdactConnecting = 107
    Public Const mdactRowsAffected = 108
    Public Const mdactError = 109
    Public Const mdactWriteAggsAndIndexes = 110
    Public Const mdactWriteSegment = 111
    Public Const mdactDataMiningProgress = 112
    
    ' Warnings
    Public Const mdwrnSkipped = 901
    Public Const mdwrnCubeNeedsToProcess = 902
    Public Const mdwrnCouldNotCreateIndex = 903
    Public Const mdwrnTimeoutNotSetCorrectly = 904
    Public Const mdwrnExecuteSQL = 905
    Public Const mdwrnDeletingTablesOutsideOfTransaction = 906
    Public Const mdwrnCouldNotProcessWithIndexedViews = 907
    
    
    Public Function ConvertAction(ByVal Action As Integer) As String
        Dim strReturn As String
    
        Select Case Action
            Case mdactProcess
                strReturn = "Process"
            Case mdactMerge
                strReturn = "Merge"
            Case mdactDelete
                strReturn = "Delete"
            Case mdactDeleteOldAggregations
                strReturn = "Delete old aggregations"
            Case mdactRebuild
                strReturn = "Rebuild"
            Case mdactCommit
                strReturn = "Commit"
            Case mdactRollback
                strReturn = "Rollback"
            Case mdactCreateIndexes
                strReturn = "Create Indexes"
            Case mdactCreateTable
                strReturn = "Create Table"
            Case mdactInsertInto
                strReturn = "Insert Into"
            Case mdactTransaction
                strReturn = "Transaction"
            Case mdactInitialize
                strReturn = "Initialize"
            Case mdactCreateView
                strReturn = "Create View"
            Case mdactWriteData
                strReturn = "Write Data"
            Case mdactReadData
                strReturn = "Read Data"
            Case mdactAggregate
                strReturn = "Aggregate"
            Case mdactExecuteSQL
                strReturn = "Execute SQL"
            Case mdactNowExecutingSQL
                strReturn = "Now Executing SQL"
            Case mdactExecuteModifiedSQL
                strReturn = "Execute Modified SQL"
            Case mdactConnecting
                strReturn = "Connecting"
            Case mdactRowsAffected
                strReturn = "Rows Affected"
            Case mdactError
                strReturn = "Error"
            Case mdactWriteAggsAndIndexes
                strReturn = "Write aggregations & indexes"
            Case mdactWriteSegment
                strReturn = "Write segment"
            Case mdactDataMiningProgress
                strReturn = "Data mining progress"
            ' Warnings
            Case mdwrnSkipped
                strReturn = "Warning: action skipped"
            Case mdwrnCubeNeedsToProcess
                strReturn = "Warning: cube needs to process"
            Case mdwrnCouldNotCreateIndex
                strReturn = "Warning: could not create index"
            Case mdwrnTimeoutNotSetCorrectly
                strReturn = "Warning: timeout not set correctly"
            Case mdwrnExecuteSQL
                strReturn = "Warning: error while executing SQL"
            Case mdwrnDeletingTablesOutsideOfTransaction
                strReturn = "Warning: deleting tables outside of transaction"
            Case mdwrnCouldNotProcessWithIndexedViews
                strReturn = "Warning: could not process with indexed views"
            Case Else
                strReturn = "Unknown action or warning"
        End Select
    
        ConvertAction = strReturn
    End Function