SQLite - integer

Moeglicherweise erst seit den letzten Versionen von xojo (2022-R2), macOS

  • SQLite Datenbank in xojo (add new sqlite…)
  • definieren von ein paar wenigen Feldern
  • 1 Feld als integer, primary key
  • speichern

Beim naechsten Aufruf wird das Feld als boolean angezeigt, ohne primary

Wenn ich die sqlite-DB in einem externen tool anschaue, ist das Feld als Integer deklariert - aber nicht als primary

Wenn die sqlite-DB in xojo wieder geoeffnet wird, ist das Feld auch nicht editierbar, kann also nicht geaendert werden

Mache ich etwas falsch (Anfaenger)? Ich habe mir so geholfen, dass ich die sqlite-DB mit Paul Lebfevre’s sql vue neu angelegt habe, nicht in xojo

Ich habe vor ein paar wenigen Monaten Ulrich Bogun’s sqlite Beispiel gefunden und ein paar sqlite Datenbanken gemaess dem Beispiel angelegt, hatte geklappt. War moeglicherweise mit einer Version 2021 oder 2020

Danke!

Wie sieht der Code Block aus, mit dem die Tabelle incl. pk Feld erzeugt wurde?

1 Like

kein code block, alles manuell in der xojo Oberflaeche erzeugt (gemaess Beispiel von Ulrich Bogun SQLite-Datenbanken in Xojo - YouTube )

Code Example here:
https://documentation.xojo.com/api/databases/sqlitedatabase.html#sqlitedatabase

Dieser build in Datenbank Editor in Xojo taugt nix und Xojo hat sich auch nicht bemüht
den zu testen oder Fehler zu beheben …
(Das Lern-Video ist von 2014)

Darum nutze ich “DB Browser (SQLite)”

1 Like

Thank You! But that example is generic, does not have the DB-Editor ?

Xojo is a developer tool, not a all public utility.

Now, you can search DB Editors instead of coding the SQLite Data Base by yourself using the provided examples (example for all of us, Xojo developers).

An example is created and shared to show he users how to code things for this Development Tool.

A DB Editor (like DB Browser and others) allows you to generate the DB file (.sqlite). And then ?

There are publicly available management tools for most DBs. Xojo gives access to a DBs CRUD operations and management functions.

Was möchten Sie mit Xojo/DB machen?

PS: Meine gestrige Antwort wurde gemacht, während ich das Internet verließ…

Vielen Dank fur die Antwort!

Ich bin ein FileMaker Entwickler (seit sicher 30 Jahren) und suche nach einer Moeglichkeit, meine Daten irgendwie abzuspeichern, zu verwalten - nicht mehr mit FileMaker.

Eine meiner ersten Erkenntnisse mit der Arbeit mit xojo war, dass es nicht fuer alles eine Datenbank braucht…
Aber es gibt durchaus sinnvolle Anwendungen mit einer Datenbank!

Ich nutze FileMaker fuer alles - wenn ich irgendetwas kontrollieren will (zB welche meiner Kunden benoetigen eine bestimmte Erweiterung), dann mache ich eine neue DB in FileMaker

Nun steht ein einfaches ‘controlling’ an, das ich mit xojo machen moechte: Fuer welche FileMaker Kunden habe ich eine in der Schweiz noetige Erweiterung gemacht - und welche Kunden haben bereits die Rechnung dafuer erhalten

Sehr einfach - und daher dachte ich, das mit xojo zu machen (auch damit ich xojo besser kennenlernen kann)

Als FileMaker Entwickler hat man Struktur, Oberflaeche, Daten (et all) in einer einzigen Oberflaeche - daher war Ulrich Bogun’s Beispiel fuer mich so etwas wie ein Schluesselerlebnis (DB Struktur direkt in xojo machen)

Da dies nicht mehr klappt, habe ich die DB mit sql vue aufgebaut - und gedacht, dass ich mal hier im Forum nachfrage wegen xojo-sqlite-integer/primary

Ich habe vor einigen Tagen eine kleine Praesentation fuer FileMaker Entwickler zu xojo gemacht - und das Problem ist natuerlich aufgestossen…

[quote=“markus schneider, post:10, topic:72235, full:true, username:markus_schneider”]
Vielen Dank fur die Antwort!

Ich bin ein FileMaker Entwickler (seit sicher 30 Jahren) und suche nach einer Moeglichkeit, meine Daten irgendwie abzuspeichern, zu verwalten - nicht mehr mit FileMaker.

Eine meiner ersten Erkenntnisse mit der Arbeit mit xojo war, dass es nicht fuer alles eine Datenbank braucht…
Aber es gibt durchaus sinnvolle Anwendungen mit einer Datenbank!

Ich nutze FileMaker fuer alles - wenn ich irgendetwas kontrollieren will (zB welche meiner Kunden benoetigen eine bestimmte Erweiterung), dann mache ich eine neue DB in FileMaker

Nun steht ein einfaches ‘controlling’ an, das ich mit xojo machen moechte: Fuer welche FileMaker Kunden habe ich eine in der Schweiz noetige Erweiterung gemacht - und welche Kunden haben bereits die Rechnung dafuer erhalten

Sehr einfach - und daher dachte ich, das mit xojo zu machen (auch damit ich xojo besser kennenlernen kann)

Als FileMaker Entwickler hat man Struktur, Oberflaeche, Daten (et all) in einer einzigen Oberflaeche - daher war Ulrich Bogun’s Beispiel fuer mich so etwas wie ein Schluesselerlebnis (DB Struktur direkt in xojo machen)

Da dies nicht mehr klappt, habe ich die DB mit sql vue aufgebaut - und gedacht, dass ich mal hier im Forum nachfrage wegen xojo-sqlite-integer/primary
OK. Ich habe verstanden.

Meine Erfahrung mit FileMaker reicht fast 40 Jahre zurück, das heißt, ich erinnere mich nicht an viel.

Bei Xojo müssen Sie die Schnittstelle erstellen (ein Fenster zum Lesen und ein Fenster zum Schreiben).

Sie müssen auch die Datenbankdatei erstellen und den Code schreiben, um ein Formular zu schreiben, ein Formular zu ändern, ein Formular zu löschen und den Inhalt der Datenbank anzuzeigen (mehrere Fenster, wenn Sie mehrere Ansichten wünschen).

Ist es jetzt klar?

1 Like

Vielen Dank!

Ich habe bereits diverse kleine Anwendungen fuer meinen eigenen Bedarf mit xojo gemacht, die ich taeglich nutze - darunter 1 mit sqlite-Anbindung. Diese funktioniert perfekt, erstellt habe ich diese mit xojo 2020 oder 2021 - war problemlos, laeuft auch immer noch fast taeglich. Aufgrund dieser Erfahrung habe ich meine ‘pro’ Lizenz wieder erneuert und auch saemtliche Lern-Videos von Byron Minick durchgeackert (fuer mich extrem wertvoll) - nebst anderen

Ich kaempfe selbstverstaendlich auch mit der neuen IDE - aber das ist ein anderes Thema

Die Videos von Byron haben mich nota bene so weit gebracht, dass ich -zumindest teilweise- den Forenbeitraegen hier folgen kann…

Ich werde nun den SQLite-Browser (aus einem der Antworten hier) naeher anschauen - und mich wohl damit abfinden, die DB nicht mit xojo zu erzeugen (waere gerade fuer FileMaker Entwickler cool…)

Ich bin nicht gewandt mit SQL - allerdings waren meine ersten Datenbanken MimerQL, Oracle, proprietaere Siemens DB - das ist aber einfach zu lange her. Mit FileMaker habe ich SQL (mit all den Einschraenkungen) recht intensiv genutzt, mit oder ohne MBS

SQL ist das wichtigste Tool für Datenbank-Anwendungen. Versuche, die Datenbank mit Code anzulegen.

Beispiel:

Dim sql As String = "CREATE TABLE ""AccountsAndMailClients""(""AccountID"" Text PRIMARY KEY, ""Accountname"" Text NOT NULL, ""Username"" Text, ""Servername"" Text, ""Port"" Integer, ""Authentication"" Text, ""UseSSL"" Boolean, ""IsIMAP"" Boolean NOT NULL)"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""MailboxData""(""MailboxPathOriginal"" Text NOT NULL, ""MailboxPathUI"" Text NOT NULL, ""AccountID"" Text NOT NULL, PRIMARY KEY (MailboxPathOriginal, AccountID))"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""MailboxSelection""(""MailboxPathUI"" Text NOT NULL, ""AccountID"" Text NOT NULL, ""PlanID"" Text NOT NULL, ""SelectionStatus"" Text NOT NULL, ""ExpansionStatus"" Text NOT NULL, PRIMARY KEY (AccountID, PlanID, MailboxPathUI))"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""Options""(""OptionID"" Text PRIMARY KEY, ""OptionName"" Text NOT NULL, ""OptionType"" Text NOT NULL, ""DefaultValue"" Text)"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""OptionsForPlans""(""OptionID"" Text NOT NULL, ""PlanID"" Text NOT NULL, ""OptionValue"" Text NOT NULL, PRIMARY KEY(OptionID, PlanID))"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""Plans""(""PlanID"" Text PRIMARY KEY, ""PlanName"" Text NOT NULL, ""Active"" Boolean NOT NULL)"
PlanDataDB.ExecuteSQL(sql)
sql = "CREATE TABLE ""AccountsForPlans""(""PlanID"" Text NOT NULL, ""AccountID"" Text NOT NULL, ""Active"" Boolean NOT NULL, ""ArchiveAll"" Boolean NOT NULL, PRIMARY KEY(AccountID, PlanID))"
PlanDataDB.ExecuteSQL(sql)
1 Like

Danke!

@Torsten_Bernhard hat dies mit seiner Frage nach ‘code’ auch angedeutet

Wie erwaehnt habe ich meine schliesslich Datenbank mit sql vue -per sql- erzeugt

Meine Idee ist einfach, FileMaker Entwicklern eine ihnen einigermassen nahe liegende Alternative aufzuzeigen - daher die Frage nach dem offenbar nicht mehr funktionierende Teil von xojo

An sich macht es mehr Sinn, die DB mit xojo zu erzeugen anstelle mit Hilfe eines externen tools - was das Beispiel deutlich macht (ist das auch das alte IDE-Dings? Wegen ‘Dim’…)

HI Markus,

was ist denn jetzt das Ziel? Willst du eine FM-Datei oder einzelne Tabellen in das Schema einer SQLite DB schreiben? Oder “from scratch” was neues anlegen? Oder aus einer bestehenden FM-Datei Daten in eine bestehende SQLite DB schreiben?

Fragt sich Holger :slight_smile:

1 Like

Hallo Holger! Ich bin immer wieder ueberrascht, wie viele FileMaker-Entwickler such hier finden! Tut gut!

Ich will eine komplett neue Datenbank erzeugen, die ich in FM nicht habe.

Eigentliches Ziel ist, mit xojo genuegend gewandt zu werden, um solche ‘alltaeglichen’ Dinge machen zu koennen - nicht (mehr) mit FileMaker.

FileMaker ist ein wunderbares Werkzeug, das sich aber irgendwie auf einem schwierigen Pfad befindet - wir verlieren zB einige FM Kunden, da diese auf dem Stellenmarkt keine (juengeren) Entwickler finden und verunsichert sind ob den Aenderungen, die sich abzeichen (zB aufgrund Berichte bei heise.de)

Wie erwaehnt: Die DB besteht ja nun - einfach die Moeglichkeit in xojo zu sagen ‘neue SQLite Datenbank’ und dann Tabellen, Felder direkt im IDE zu machen - waere aus FM Sicht faszinierend…

1 Like

Es spricht nichts gegen einen externer SQLite Editor - allerdings wäre meine Empfehlung da eher der SQLiteManager (https://sqlabs.com/sqlitemanager), da der auch verschlüsselte SQLite Dateien unterstützt.

Ich lege meine SQLite Datenbanken direkt in Xojo an, ganz einfach über den ExecuteSQL Befehl, ähnlich wie Beatrix es ja bereits erläutert hat. Hat den Vorteil, das es keine fehlenden Datenbankdateien mehr gibt, nichts hin- und herkopiert werden muss und Änderungen am Datenbankaufbau ebenfalls einfach und übersichtlich sind…

2 Likes

das nimmt aber gerade ziemlich Fahrt auf, die aktuellen Entwicklungen schaffen gerade wenig Vertrauen…

dann ist bestimmt der Weg von Beatrix erfolgversprechend.

ich habe mir erstmal eine “Übersetzungsroutine” geschrieben, die die Daten der FM-Dateien in SQLite umschreibt - Christian sei Dank :innocent:. Die Übersetzung der Datentypen ist dabei sicher tricky, weil es keine 1:1 Transformation geben kann. Da dachte ich, dass ich dann starten könnte.

Ich kämpfe mehr mit der Oberfläche als mit dem DB-Unterbau…

2 Likes

Das ist in der Regel die meiste Arbeit.

Mein Programm kann Daten nach Filemaker exportieren. Ich mache mir da auch Sorgen, wie es weitergehen soll.

Wenn irgendwas nicht so geht wie es soll nutze oben “Issues” im Forum.
In der Hoffnung das Xojo sich darum kümmert …
Diesen SQLite Editor in Xojo fand ich auch nützlich …

In Xojo gibt es zwei Möglichkeiten um Daten zu ändern, einmal per SQL Sprüche und sonst über DatabaseRow / RowSet.

1 Like