Jump to content

Views auf Änderungen überwachen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

hab folgendes Problem und hoffe ihr habt dafür Vorschläge.

 

Ausgangslage:

Ich habe eine View von einer Oracle Datenbank zur Verfügung gestellt bekommen und diese über nen Verbindungsserver in meine DB eingebunden. Für die zugrundeliegenden Tabellen habe ich keine Berechtigungen, sodass sich Trigger hierfür erübrigen.

 

Problem:

Gibt es eine Möglichkeit die View auf Änderungen (Updates), also wenn sich die Daten der zugrundeliegenden Tabellen geändert haben, zu überwachen und bei Eintreten ein Ereignis (beschreiben einer Tabelle mit den geänderten Daten) auszulösen? Also ähnliche zu einem AFTER UPDATE-Trigger bei Tabellen, die ja bei Views so nicht möglich sind.

 

Vielen Dank für eure Ideen,

Rooney

Link zu diesem Kommentar

Moin,

 

eine effiziente Möglichkeit dazu gibt es nicht. Da Daten immer in den Tabellen geändert werden (Views sind ja nur Ansichten der Daten!), kannst du auch nur dort sinnvoll auf Veränderungen prüfen.

 

Auf View-Ebene könntest du höchstens Auswertungen machen, z.B. die Zahl der Datensätze prüfen. Ebenso könntest du einen Zustand der Daten in eine temporäre Tabelle schreiben und die View dann damit vergleichen und auf Unterschiede prüfen. Das wäre aber jenseits jeder Effizienz. Zudem kann es durchaus sein, dass die View so definiert ist, dass du bestimmte Änderungen dort gar nicht siehst.

 

Gruß, Nils

Link zu diesem Kommentar

Danke erstmal für die schnelle Antwort!

Die Möglichkeit die View durch eine Prozedur zu überwachen kam mir auch schon in den Sinn. Das würde auch funktionieren, auch wenn es nicht effizient ist.

Das Problem ist allerdings, dass das zu dem Zeitpunkt passieren muss, wenn sich die View geändert hat. Also mir fehlt im Prinzip ein Ereignis, dass die Prozedur auslöst.

 

Grüße

Link zu diesem Kommentar
Gibt es eigentlich die Möglichkeit gespeicherte Prozeduren vom Client/Frontend (in meinem Fall MS Access über VBA) aufzurufen?

 

Ja, funktioniert mit mehrere Varianten:

 

DAO:



Public Function ExecSQL(strSQL As String, strConnect As String)

   Dim qExec As DAO.QueryDef

   Set qExec = CurrentDb.CreateQueryDef("")

   With qExec

       .Connect = strConnect

       .ReturnsRecords = False

       .ODBCTimeout = 0

       .SQL = strSQL

       .Execute dbSQLPassThrough + dbSeeChanges

       .Close

   End With

   Set qExec = Nothing

End Function

 

Oder ActiveVB - VB 5/6-Tipp 0435: ADO StoredProcedures mit Access nutzen und aufrufen oder dieses Beispiel: ActiveVB - ADO, DB-Programmierung

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...