Noch mehr zum Sehen: SQLite-Programmierung in Xojo

Jaja, ich weiß, es war in letzter Zeit ziemlich still hier. Grund ist der, dass ich (u.a.) damit beschäftigt war, ein neues Videotutorial zu erstellen – und ich tu mich noch reichlich schwer damit. Die Schnittliste in Screenflow macht Hollywoodproduktionen locker Konkurrenz.
Deshalb jetzt ohne viel Worte – nur mit der Inhaltsangabe – das Ergebnis:

Die behandelten Themen :
– Datenbankschemata
– SQLite-Grundlagen
– Erstellung einer SQLite-Datenbank mittels Xojo
– Programmierung einer SQLite-fähigen Desktop-App
– Portierung von einer Desktop- auf eine Web-App

Und wie schon gesagt: Schreiben Sie mir gerne, was Ihr Interesse in Sachen Xojo besonders trifft.

Die Projektdateien und Datenbank zum schnellen Erweitern finden Sie hier.

Ein Nachsatz noch dazu, weil mich eine Anfrage zur Umsetzung der Web-App erreichte (vielen Dank dafür!):
In der demonstrierten Form wäre die App noch nicht wirklich nutzbar, das Video erklärt nur die Umsetzung im Rahmen der Programmerstellung. Sie aber wirklich mehrbenutzerfähig zu machen, ist kein großer Aufwand:

  • Das Copyscript wäre ausgesprochen kontraproduktiv, würde bei jedem Deployment doch damit die schon online bearbeitete Datenbank überschrieben werden. Es empfiehlt sich eher, beim Start der App auf dem Server zu überprüfen, ob die SQLite-Datei vorhanden ist und sie, sollte dem nicht so sein, programmatisch zu initialisieren, so wie am Anfang des Video erwähnt. Also im diesen Fall eine Datenbank anlegen:

    Dim f As FolderItem
    f = New FolderItem("Bundesliga.sqlite") // ggf. den Speicherort genauer definieren
    db.DatabaseFile = f
    If db.CreateDatabaseFile Then
    MacheTabellen // Wir definieren die Struktur in einer eigenen Methode
    Else
    MsgBox("Datenbank konnte nicht angelegt werden. Fehler: " + db.ErrorMessage)
    End If

    und zwei SQL-Strings mit den folgenden Anweisungen via DB.Execute ausführen lassen (hier zur besseren Übersicht aufgelistet, im String dann die Felder stattdessen mit Kommata getrennt:

    CREATE TABLE Mannschaft (
    ID integer PRIMARY KEY,
    Name text,
    Trainer text,
    Ort text
    );

    CREATE TABLE Spieler (
    ID integer PRIMARY KEY,
    Name text,
    Position text,
    Alter_ integer,
    MannschaftsID integer
    );

  • also in etwa so in Xojo:

    Dim SQL As String = "CREATE TABLE Mannschaft (ID Integer PRIMARY KEY, Name … );"
    DB.Execute (SQL)

  • Statt die Datenbank im Open-Event zu öffnen, sollte dies im Session-Objekt passieren. Für jeden Benutzer wird dann ein eigener Zugriff etabliert, und die Verwendung von DB.Multiuser = True sorgt für richtige und schnelle Handhabung konkurrierender Schreibzugriffe.

Fehlt noch etwas? Lassen Sie es mich gerne wissen.

5 Gedanken zu “Noch mehr zum Sehen: SQLite-Programmierung in Xojo

  1. Hallo Uli, ich hätte mir gerne die Projektdateien nebst Datenbank heruntergeladen und noch mal in Ruhe angesehen, aber leider funktioniert der Dropbox-Link nicht (mehr?). Gibt’s vielleicht noch ne andere Möglichkeit? Vielen Dank!

    Gefällt mir

    1. Danke für den Hinweis, Axel! Ich hatte doch glatt die Datei in den falschen Ordner geschoben. Sollte jetzt wieder gehen.
      Nebenbei gesagt (und auch ein Grund für die wieder mal lange Sendepause hier): Ich bin gerade an einer – hoffentlich – Vereinfachung für SQLite-Integration: Listboxen und andere Controls, die sich via Interface bei einer Recordset-Veränderung automatisch aktualisieren und ebenso ihre Werte in die Datenbank zurückliefern. Ich hoffe, in den nächsten zwei Wochen damit durch zu sein.

      Gefällt mir

      1. Danke für die prompte Reaktion. Jetzt hat’s geklappt. 🙂

        Vereinfachungen bei der DB-Handhabung wären zweifellos sinnvoll. Das soll jetzt kein Herumnörgeln an Xojo sein, aber ich war und bin doch etwas überrascht, wie kompliziert – oder besser gesagt: wie aufwändig – einfache DB-Operationen sind. Hatte ich nicht gedacht, zumal die SQLite-Integration ja neben der Multiplattform ein gewichtiges Argument für Xojo ist (jedenfalls für mich; andere Nutzer mögen andere Schwerpunkte setzen).

        Will sagen: Ich bin gespannt. 😉

        Gefällt mir

  2. Sehr schön, danke für die Bestätigung!
    Und ja: Geht man auf SQLite, hat man fast überall das Problem, mit relativ komplexen Strukturen und Befehlen hantieren zu müssen – kein Xojo-typischer Mangel. Wenn man aber mal in FileMaker o.ä. programmiert hat, vermisst man ganz schnell einiges an Komfort. Es gibt bereits ein paar Xojo-Projekte, die den Umgang mit Datenbanken vereinfachen und ganz unterschiedliche Herangehenswege haben. Gute Anregung für eine Kurzzusammenfassung, danke! 😉

    Gefällt mir

    1. Filemaker kenne ich nicht näher, aber selbst die 90er-Jahre-IDEs wie dbFast oder Foxpro waren da in meiner Erinnerung schon deutlich komfortabler. Müssen sie gewesen sein, da sogar ich seinerzeit durchaus komplexe Anwendungen damit entwickelt habe. 😉

      Ich räume aber ein, dass der Bedarf an Werkzeugen zur einfachen Entwicklung individueller Desktop-DB-Anwendungen nicht mehr in dem Maße gegeben ist. Inzwischen kann man alles mehr oder weniger fertig kaufen. Oder mieten (SaaS).

      Aber wir hatten ja nix, damals! 😉

      Na ja, als alter Sack gehöre ich wohl einfach nicht zur (typischen) Zielgruppe von Xojo. Ich bleibe aber trotzdem dran. Mal sehen, wie weit ich komme.

      Danke für die Unterstützung.

      Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s