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 |
---|---|
Her veritabanındaki bir nesnede bir işleme eylem tamamlamadığını adlı |
|
Önce veritabanındaki bir nesnede bir işleme eylem denir. |
|
Bir işleme eylem sırasında bir hata oluştuğunda olarak adlandırılır. |
|
İ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
Visual Basic'i başlatın ve Project1 adlı yeni bir proje oluşturun.
De Project References Seç iletişim kutusunda Microsoft Decision Support Objects onay kutusu.
De Project Components iletişim kutusunda'ı Microsoft Windows Common Controls 6.0 (SP3).
Adı verilen yeni bir modül oluşturun Module1.
Adı verilen yeni bir form oluşturmak Form1.
Bir metin kutusu adlı bir form ekleyin Text1.
Olarak adlandırılan bir düğme eklemek Command1 form ve etiket onu "Process".
Adı verilen başka bir düğme eklemek Command2 form ve etiket "İptal".
Adlı bir ilerleme çubuğu denetimi ekleme ProgressBar1.
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