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 |
---|---|
Wywołana przy każdym zakończył akcja przetwarzania obiektu bazy danych, wykonywanie |
|
Wywołana przed przetwarzaniem akcja dla obiektu w bazie danych |
|
Wywołana, gdy wystąpi błąd podczas przetwarzaniaakcja |
|
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
Uruchom program Visual Basic i Utwórz nowy projekt o nazwie Project1.
W Project References okno dialogowe Wybierz Microsoft Decision Support Objects pole wyboru.
W Project Components okno dialogowe, kliknij przycisk Microsoft Windows Common Controls 6.0 (SP3).
Utwórz nowy moduł o nazwie Module1.
Utwórz nowy formularz o nazwie Form1.
Dodawanie pola tekstowego do formularza o nazwie Text1.
Dodawanie przycisku o nazwie Command1 do formularza i etykiet go "procesu".
Dodać inny przycisk o nazwie Command2 do formularza i etykiet go "Anuluj".
Dodaj formant paska postępu o nazwie ProgressBar1.
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