Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

oliver1804
**
Beiträge: 39
Registriert: Fr, 27.11.2009 15:07

Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von oliver1804 »

Hallo,

ich möchte, daß ein Makro ausgelöst wird, bevor auf eine Tabelle entweder ein

1. DELETE

oder

2. UPDATE/INSERT erfolgt.


Wie schaffe ich es, dies nicht über die Ereignisse (Eigenschaften) einzelner Formulare zu verknüpfen, sondern über ein ständig laufendes Makro, das auf beide Ereignisse prüft?

Danke für Eure Tipps
Oliver
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von komma4 »

Die Manipulation in (HSQLDB-)Base-Tabellen lösen keine Ereignisse aus.


Es gibt Datenbanken welche die sog. Trigger unterstützen.
Gestartet werden dann aber SQL-Skripte - keine OOo-Makros.


Welche Zweck verfolgt Deine Nachfrage?
Kannst Du eine Protokollierung (handelt es sich darum?) nicht per Historie (update-timestamp, Löschkennzeichen, usw.) erstellen?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
oliver1804
**
Beiträge: 39
Registriert: Fr, 27.11.2009 15:07

Re: Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von oliver1804 »

Hallo,
komma4 hat geschrieben:Die Manipulation in (HSQLDB-)Base-Tabellen lösen keine Ereignisse aus.
ich verwende http://www.sqlite.org/ mit http://www.ch-werner.de/sqliteodbc/
komma4 hat geschrieben:Es gibt Datenbanken welche die sog. Trigger unterstützen.
Gestartet werden dann aber SQL-Skripte - keine OOo-Makros.
Stimmt, SQLite unterstützt dies Trigger-Dings auch - hab insgesamt 91 Stück davon in meiner Datenbank ;-)

komma4 hat geschrieben:Welche Zweck verfolgt Deine Nachfrage?
Kannst Du eine Protokollierung (handelt es sich darum?) nicht per Historie (update-timestamp, Löschkennzeichen, usw.) erstellen?
Ich benutz Trigger, um in LOG-Tables INSERT/UPDATE/DELETE zu protokollieren.

Mein (momentanes) Problem ist, daß ich im Rahmen eines Anmeldeprozesses eine USER-ID in eine Variable geschrieben hab, deren Inhalt ich nun bei jedem INSERT/UPDATE/DELETE in das USER-ID-Feld der jeweiligen Tabelle schreiben möchte (beim DELETE erfolgt natürlich zunächst ein UPDATE und dann erst das DELETE).

Ich kann meine Makros natürlich an die entsprechenden Formularereignisse (Löschen bestätigen & Vor der Datensatzaktion) hängen, aber ich find das reichlich nervig, da ich das für jedes Formular wiederholen muß - wenn es professioneller ginge, dann wär mir das lieber.

Zu meinem Background: SQL relativ gut, funktionales Skripten (http://de.wikipedia.org/wiki/Gawk) auch ganz ordentlich, Basic & OOP hab ich erst im Rahmen von OpenOffice ein wenig kennengelernt (Buch vom Krumbein). Ich hoffe, das dies eine hilfreiche Info erleichtert???
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von komma4 »

mmm, wie wäre es mit:

* schreibe den Benutzernamen (zusätzlich) in eine Datei
* setze Trigger ein, um den Inhalte dieser Datei als Spaltenwert zu setzen. Zum Lesen der Datei sollten Befehle existieren


Viel Erfolg!


(mein alternatives Vorgehen: keine Formulare verwenden! Ich benötigte bislang meist sehr einfache E/A-Dialoge, die ich mit BASIC erstellt und kontrolliert habe. Dort kannst Du dann "alles" programmieren, was Du möchtest. Einmal Routinen für Dialog, Kontrollfelder, DB-Zugriffe und Ereignisse programmiert... Historisch gewachsen, vielseitig und wiederverwendbar. YMMV)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von eBayer »

Hallo zusammen,
Frage an Winfried: warum keine Formulare verwenden?
Ich habe die hier beschriebenen Probleme nicht und steuere einiges über Formularereignisse.
Diese Aussage kann ich sowohl für die eingebaute HSQLDB wie für MySQL machen.
Gruß eBayer
Ereignisse.jpg
Ereignisse.jpg (57.59 KiB) 760 mal betrachtet
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroauslösung in Abhängigkeit von INSERT/UPDATE oder DELETE

Beitrag von komma4 »

eBayer hat geschrieben:warum keine Formulare verwenden?
Wie geschrieben:

das ist mein Vorgehen, da historisch gewachsen.


Bei neuen Projekten (Aufgaben) nutze ich vorhandene Skripte, Routinen etc. um Datenbanken, Tabellen, Dialoge, Vorlagen, ... zu erstellen/kopieren/anzupassen.

Das passt eben für meine (berufl.) Tätigkeit - bei Oliver, Dir oder sonst wem sieht das i.d.R. anders aus.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten