Udostępnij za pośrednictwem


Zdarzenia (Objects DSO)

Ostrzeżenie

  Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.

Obiekt tylko w Decision Support Objects (DSO) obsługujący bezpośrednio zdarzenie zalewkowanie jest Database obiektu.Ten obiekt fires zdarzeń dla wszystkich jego obiektów podrzędność, w tym wymiarów współużytkowanych, moduły, partycje, skupiska i modelami wyszukiwanie danych.

Poniższa tabela zawiera listę zdarzeń, które obsługuje ten obiekt.

Zdarzenie

Opis

ReportAfter

Wywołana przy każdym zakończył akcja przetwarzania obiektu bazy danych, wykonywanie

ReportBefore

Wywołana przed przetwarzaniem akcja dla obiektu w bazie danych

Funkcję ReportError

Wywołana, gdy wystąpi błąd podczas przetwarzaniaakcja

ReportProgress

O nazwie do raportowania postępu akcja podczas przetwarzania

Czynności przetwarzania

Każde zdarzenie raportuje stan akcja przetwarzania.Ta akcja przetwarzania jest reprezentowane przez stałe całkowitą.Czas dla każdej akcja przetwarzania zależy od zdarzenie uwięzienia.Dla wystąpienie, akcja korespondencji seryjnej (mdactMerge) raportuje dwie partycje lub agregacji będzie bemerged podczas schwytanych w ReportBefore zdarzeń.W przeciwieństwie tego samego akcja zgłasza, że dwie partycje lub agregacji zostały scalone podczas schwytanych w ReportAfter zdarzenie.

Poniżej przedstawiono listę akcji, które są obsługiwane przez zdarzenia obiektów bazy danych:

Action

Stała

Opis

Proces

mdactProcess

Wskazuje, że obiekt określone przez obj został przetworzony.

Scalanie

mdactMerge

Raportuje, że dwie partycje/agregacji zostały scalone.

Usuń

mdactDelete

Wskazuje, że obiekt został usunięty.

Usuń stare agregacji

mdactDeleteOldAggregations

Wskazuje, że istniejące relacyjny tryb OLAP agregacji partycji (ROLAP) zostały usunięte.

Odbuduj

mdactRebuild

Wskazuje, że został przebudowany definicji obiektu.

Zatwierdź

mdactCommit

Wskazuje, że zostało popełnione transakcji w bazie danych.

Wycofywanie

mdactRollback

Raporty, które transakcja została wycofana w bazie danych.

Tworzenie indeksów

mdactCreateIndexes

Wskazuje, że utworzono indeksy dla agregacja ROLAP.

Tworzenie tabeli

mdactCreateTable

Raporty tabela agregacja dla agregacja ROLAP został utworzony.

Wstawianie

mdactInsertInto

Wskazuje tabela agregacja dla partycji ROLAP została wypełniona.

Transaction

mdactTransaction

Raporty, że został uruchomiony, zakończone, lub transakcji napotkał wyjątek.

Inicjowanie

mdactInitialize

Wskazuje, że obiekt określone przez obj parametr został zainicjowany.

Tworzenie widoku

mdactCreateView

Raporty o utworzeniu widoku agregacja dla agregacja ROLAP.Ta akcja jest prawidłowa tylko w przypadku, gdy przetwarzania moduł ROLAP przy użyciu programu Microsoft ® SQL Server ™ 2005 Widoki indeksowane.

Zapis danych

mdactWriteData

Dane zostały zapisane na dysku.

Odczyt danych

mdactReadData

Dane zostały odczytane z dysku.

Agregacja

mdactAggregate

Konstruowany agregacji.

Wykonaj SQL

mdactExecuteSQL

instrukcja języka SQL została wykonana.

Teraz wykonywanie SQL

mdactNowExecutingSQL

instrukcja języka SQL jest wykonywany, który może być anulowane.

Wykonywanie modyfikacji SQL

mdactExecuteModifiedSQL

Zmodyfikowane instrukcja języka SQL została wykonana.

Zaktualizowano wierszy

mdactRowsAffected

Raporty liczbę wierszy dotyczy instrukcja języka SQL.

Błąd

mdactError

Wskazuje, że wystąpił błąd podczas przetwarzania.

Napisz agregacji i indeksów

mdactWriteAggsAndIndexes

Indeksy i agregacji zostaną zapisane na dysku.

Napisz segmentu

mdactWriteSegment

Segmenty zostaną zapisane na dysku.

Procent przetworzone dane modelu górnictwo

mdactDataMiningProgress

Stan ukończenia przetwarzania danych model wyszukiwania w ujęciu procentowym.

Więcej informacji o Database obiektów, zobacz clsDatabase.

Samouczek - zdarzenia nadlewek i podlewek bazy danych.

Następujące samouczek prezentuje nadlewek i podlewek przetwarzania zdarzeń.W przykładach a do c jest plik projektu Microsoft Visual Basic ® zestaw up, zawierający wszystkie informacje potrzebne do korzystania z pozostałych przykładach.D do g przykładach nadlewek i podlewek każdego zdarzenia, które są dostępne z obiektu bazy danych.

A.Konfigurowanie pliku projektu

  1. Uruchom program Visual Basic i Utwórz nowy projekt o nazwie Project1.

  2. W Project References okno dialogowe Wybierz Microsoft Decision Support Objects pole wyboru.

  3. W Project Components okno dialogowe, kliknij przycisk Microsoft Windows Common Controls 6.0 (SP3).

  4. Utwórz nowy moduł o nazwie Module1.

  5. Utwórz nowy formularz o nazwie Form1.

  6. Dodawanie pola tekstowego do formularza o nazwie Text1.

  7. Dodawanie przycisku o nazwie Command1 do formularza i etykiet go "procesu".

  8. Dodać inny przycisk o nazwie Command2 do formularza i etykiet go "Anuluj".

  9. Dodaj formant paska postępu o nazwie ProgressBar1.

  10. W sekcji deklaracji ogólnych formularza Dodaj następujący kod:

    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.Dodawanie zdarzeń Form_Load i przycisk kliknij zdarzenia

  • Dodaj następujący kod do formularza:

    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.Dodawanie podprocedury ProcessDatabase

  • Dodaj następujący kod do formularza:

    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.Dodawanie obsługi zdarzeń ReportBefore

  • Dodaj następujący kod do formularza:

    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.Dodawanie obsługi zdarzeń ReportAfter

  • Dodaj następujący kod do formularza:

    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.Dodawanie obsługi zdarzeń ReportProgress

  • Dodaj następujący kod do formularza:

    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.Dodawanie obsługi zdarzeń funkcję ReportError

  • Dodaj następujący kod do formularza:

    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.Dodawanie funkcja ConvertAction

  • Dodaj następujący kod do modułu:

    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