Seite 1 von 2
Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Fr 23. Aug 2013, 09:13
von Sephan
Hallo, ich verwende folgende Funktion um Daten eines Formulars zu speichern und dieses Formular dann für neue Daten zu leeren:
Code: Alles auswählen
Sub save_and_new_row(event)
on error goto errorhandler
ocontroller = thiscomponent.currentcontroller
oform = event.source.model.parent
odatDatum = oform.getbyname("datDatum")
odatDatumctrl = ocontroller.getcontrol(odatDatum)
odatDatumctrl.setFocus
oform.insertrow
oform.movetoinsertrow
errorhandler:
End Sub
Meine Frage ist nun, wie ich es gleichzeitig erreichen kann, dass die Base Datei auch gespeichert wird. Denn wenn ich soffice kille, sind die zuvor "gespeicherten" Einträge nicht in der Datenbank. Ich möchte unbedingt vermeiden, dass Daten verloren gehen. Das kam im Regeleinsatz meiner Base Datei leider vor. Weiß aber nicht, wie die User es geschafft haben. Darum soll jetzt bei jedem Speichern auch die Daten in der Basedatei gespeichert werden. Das heißt womöglich jedesmal ein Datenbank disconnect und reconnect. Solange die Daten jedesmal fest gespeichert werden, soll mir das Recht.
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Fr 23. Aug 2013, 11:52
von RobertG
Hallo Sephan,
versuche einmal das Folgende aus der Beispieldatenbank für das Handbuch:
Code: Alles auswählen
SUB Daten_aus_Cache_schreiben
REM Schreibt die Daten aus der Tabelle auch während der Laufzeit von Base direkt auf die Platte.
DIM oDaten AS OBJECT
DIM oDataSource AS OBJECT
oDaten = ThisDatabaseDocument.CurrentController
IF NOT ( oDaten.isConnected() ) THEN oDaten.connect()
oDataSource = oDaten.DataSource
oDataSource.flush
END SUB
Gruß
Robert
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Fr 23. Aug 2013, 13:47
von Sephan
Scheint echt zu klappen. Sehr gut
Jetzt hoffe ich mal, dass es keine Datenverluste mehr gibt
Großen Dank dir

Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Di 6. Mai 2014, 17:26
von Freischreiber
Hallo,
nachdem ich dieses Video von F3K gesehen habe zum Thema Frontend-Backend-Aufteilung:
https://www.youtube.com/watch?v=zwpbEFOcKxk
war ich echt erschrocken, was LO/OO unter "Dokumentwiederherstellung" versteht: Lesezugriff auf das, was vor dem Crash schon auf der Platte war unter Verwerfung des Dazugekommenen
Dann bin ich auf dieses Topic gestoßen und hab gleich das Makro installiert. Funktioniert gut, und ich glaube, das ist jetzt ein Beispiel für ein Ereignis "Nach der Datensatzaktion", oder?
Jetzt würde ich nur gern wissen: Was ist denn die "bessere" Lösung: Das Makro oder wirklich die Aufteilung der Datenbank in Frontend und Backend?
Braucht man die Aufteilung langfristig sowieso?
Ist das Arbeiten dann schneller als mit der internen Datenbank?
Gruß
Freischreiber
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Di 6. Mai 2014, 20:36
von RobertG
Hallo Freischreiber,
ich habe beide Datenbanktypen im Einsatz. Bisher habe ich bei keinem der Typen irgendwelchen Datenverlust gehabt. Trotzdem bin ich bei der internen Datenbank dazu übergegangen, ein Makro zu installieren, das mir beim Start der Datenbankdatei erst einmal eine Sicherungskopie ins LO-Backup-Verzeichnis legt.
Die externe Variante hat den Vorteil, dass dort die Daten sofort geschrieben werden und mehrere Personen gleichzeitigen Zugriff auf die Daten haben. Da würde ich zusammen mit LO vermutlich PostgreSQL im Moment den Vorzug geben. Dort ist einfach der Treiber immer in den Paketen dabei.
Die interne Variante hat den Vorteil, dass alles in einem Paket transportabel ist. Solche Datenbanken kann ich auf jedem Rechner starten auf dem eben LO oder AOO oder OOo verfügbar ist.
Gruß
Robert
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Mi 7. Mai 2014, 08:32
von Freischreiber
Hallo Robert,
das Makro mit der Sicherheitskopie klingt vielversprechend, das hätte ich auch gerne. Würdest du das hier veröffentlichen?
Achso, bei der Frontend-Backend-Methode muß auf dem Rechner zusätzliche Software installiert sein?
Gruß
Freischreiber
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Mi 7. Mai 2014, 10:01
von Acco
Hallo Freischreiber,
das Makro findest Du im Handbuch.
Gruß
acco
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Mi 7. Mai 2014, 19:54
von RobertG
Hallo Freischreiber,
für eine externe Lösung (Frontend - Backend) ist natürlich eine externe Datenbank nötig. Wenn Du z.B. über das Internet auf Daten zugreifen willst, dann haben viele Hoster hier eine MySQL-Datenbank dabei. Die kannst Du mit den Base-Formularen, Abfragen und Berichten ansteuern.
Gruß
Robert
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Do 8. Mai 2014, 16:15
von Freischreiber
Hallo,
ich hab das Makro für die Sicherheitskopien im Handbuch gefunden.
Problem: Was bedeutet: das Makro mit dem Öffnen des Dokuments verknüpfen? Ich versuche unter Extras - Makros verwalten - Basic - Zuweisen dem Ereignis "Dokument öffnen" das Makro zuzuweisen. Aber es taucht dort nicht auf. Dort sind nur zwei "Bibliotheken", und kein Hinweis auf das im Dokument gespeicherte Makro!
Gruß
Freischreiber
Übrigens: Was bedeutet die Funktion in den LO-Optionen "Sicherheitskopie immer erstellen"? Die ist bei mir aktiviert, aber ich hab noch nirgendwo eine Sicherheitskopie gesehen...
Re: Speichern Funktion um Daten in Base Datei zu speichern
Verfasst: Do 8. Mai 2014, 17:16
von Acco
Hallo Freischreiber,
1. Extras - Anpassen - Ereignisse - Dokument öffnen - Da das Makro eintragen (beachten: in "Speichern in..." Auswahlfeld: die DB eintragen.)
2. Extras - Optionen - Pfade - Sicherungskopien. Da werden die Sicherungskopien gespeichert
Gruß
acco