Wie geht das?
Danke sehr
Was für einen Zweck soll die Datenbank erfüllen?
Also soll die Applikation dort Daten ablegen/abrufen? Oder dient es als eine Art für Einstellungen wie ich es z.B. für eine Chip Datenbank benutze?
Eher eine Art Einstellungen.
Wenn es nicht zu viele Einstellungen gibt, dann würde ich das Beispielproject vom Xojo Blog benützen, mit dem man Preferences speichern/auslesen kann. Finde grad den Link nicht.
Für ein Projekt benutze ich Beides. Das Preferences Beispiel für globale Einstellungen und SQLite für FPGA Hersteller, Chip Serie, Packages, Programmer, um so die FPGA Programmierung zu steuern.
Ich persönlich finde SQLite für Preferences etwas oversized, obwohl ich weiss, dass es viele tun. Schwierig finde ich vor Allem die geringe Robustheit der Datei. In persönlichen Experimenten habe ich (ist allerdings schon Jahre her) festgestellt, dass oft schon ein irreguläres Beenden des Programms bei geöffneter DB-Engine genügt und schon ist beim nächsten Start nix mehr lesbar.
Ich habe mir vor deshalb Jahren für Preferences eine eigene Klasse erstellt, die die Daten direkt im Open-Event in ein Array im RAM liest und mit einer “gewöhnlichen” Datei arbeitet. Ein rigides Open und möglichst schnelles Close war mit dabei wichtig und Sichern nur dann, wenn sich tatsächlich etwas ändert. Die Klasse kann nach dem Key-Value-Prinzip die Datentypen Integer, Double, Boolean, String und Color speichern und laden, anderes habe ich für Prefs bisher nicht vermisst. Die Pref-Datei kann wahlweise im Systemordner für Prefs oder quasi “neben” der App gesichert werden. Auch Import und Export (für die Übertragung z.B. auf andere Rechner) sind möglich.
Bei Interesse, bitte melden …
Da ist nichts oversized. Meine Einstellungen haben mittlerweile 16 Tabellen und bald kommen noch 2 dazu:
Und ich hatte noch nie einen Fall, bei dem die Datenbank nach einem Absturz nicht mehr lesbar war.
Ich hatte mal einen Benutzer, der sich über einen langsamen Start meines Programms beschwert hat. Das dauerte über 2 Minuten. Der Benutzer hatte 10k Mailboxen in den Einstellungen abgespeichert und das Preferences-System von macOS mag solch eine Menge an Daten nicht.
Danke sehr
Ahhh verstehe…viel zu lernen…als Anfänger
Hallo Frank,
das hört sich aber sehr schwer an. Kann man das auch als “Anfänger” hinbekommen?
Hallo Beatrix,
verstehe ich das richtig als Anfänger. Ich brauche kein Tool für SQlite sondern kann von Xojo alles per Programmierung erstellen?
Ein zusätzliches Programm zum Ansehen und Bearbeiten ist nicht verkehrt. Letztendlich landet alles als SQL in Xojo.
Ich verwende Valentina-Studio. Ich habe 2 Tabellen zu meiner Einstellungs-Tabelle hinzugefügt und dann in Valentina-Studio nachgeschaut, ob die Tabellen richtig erzeugt wurden. Valentina-Studio hat auch einen sehr guten Query-Builder, den ich gerne verwende.
Hallo Beatrix,
danke für die Tipps das ist super von dir. Was machst du mit Xojo? Grüße
Ich mache Email-Archivierung für macOS. Die Hauptdatenbank ist Valentina. Aber die ganzen Einstellungen sind in SQLite und seit neuestem sind auch die Filter in SQLite - alles mit viel viel SQL.
Hallo Beatrix,
das ist ja witzig. Mein Steuerberater sagte mir das ich meine Emails archivieren soll. Das wird irgendwie Pflicht. Aber ich habe Windows. Kannst du das auch in Windows machen?
Nein, Mail Archiver ist nur für macOS verfügbar. Aber es gibt MailStore zum Archivieren von Emails unter Windows.
habe ich von der MailStore Seite:
Grundsätzlich muss jede Korrespondenz archiviert werden, durch die ein Geschäft vorbereitet, abgewickelt, abgeschlossen oder rückgängig gemacht wird. Beispiele sind Rechnungen, Aufträge, Reklamationsschreiben, Zahlungsbelege und Verträge. Wenn solche Informationen per E-Mail übermittelt werden, sollten diese in einem rechtssicheren E-Mail-Archiv aufbewahrt werden.
verstehe ich das richtig das du nicht in Xojo 2 Betriebssysteme anklicken kannst? bzw. Das wenn man auf Mac arbeitet dies nicht für Windows machen kann, sondern nur wenn man ein Windows Rechner hat?
Ja genau.