rooney 10 Geschrieben 11. Mai 2012 Melden Teilen Geschrieben 11. Mai 2012 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 11. Mai 2012 Melden Teilen Geschrieben 11. Mai 2012 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 Zitieren Link zu diesem Kommentar
rooney 10 Geschrieben 11. Mai 2012 Autor Melden Teilen Geschrieben 11. Mai 2012 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 11. Mai 2012 Melden Teilen Geschrieben 11. Mai 2012 Moin, das ginge nur über einen Trigger. Gruß, Nils Zitieren Link zu diesem Kommentar
rooney 10 Geschrieben 11. Mai 2012 Autor Melden Teilen Geschrieben 11. Mai 2012 Gibt es eigentlich die Möglichkeit gespeicherte Prozeduren vom Client/Frontend (in meinem Fall MS Access über VBA) aufzurufen? Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 13. Mai 2012 Melden Teilen Geschrieben 13. Mai 2012 Moin, Ja, schau mal in der Online Hilfe nach den Stichworten ODBC, Querydef, Recordset. Du kannst auch einen Access-View als SQL-Pass-Through definieren (mit den korrekten Verbindungsparametern), der dann z.B. als Inhalt ein "EXEC Prozedur para1, para2" enthält. Gruß Kai Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 14. Mai 2012 Melden Teilen Geschrieben 14. Mai 2012 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.