TinyDB in zwei Screens verwenden

Hallo,
ich möchte im Screen1 die Datenbank aufbauen und im Screen2 die DB lesen und anzeigen.

  1. Wie kann ich im Screen2 die im Screen1 definierte DB aufrufen?
  2. Bleibt die DB erhalten, wenn ich das Smartphone ausschalte?

Drag a TinyDB component into the designer and make sure that the namespace is the same as in Screen1. Store the value in the TinyDB on Screen1 and retrieve it on Screen2 with the GetValue method

Yes. Anything inside a TinyDB is store on your phone's memory. Internal, it's just a SharedPreferences object

3 Likes

Wer kann diese Logik erklären?
Wenn ich file1 und file2 definiere, so kann ich damit zwei verschiedene Dateien (files)
ansprechen.
Wenn ich TinyDB1 und TinyDB2 definiere, so sind dies nicht zwei DB sondern ein und dieselbe.

The logic is simple if you understand how the tinydb works.

There is only one database provided for the tinydb. It doesn’t matter how many tinydb components you drag out onto your workspace (TinyDB1,TinyDB2, TinyDB3) they all share and use the same database.

If you do drag out several tinydb components, you will notice that by default they all share the same namespace - TinyDB1.

You can have different namespaces in a single tinydb, or apply different namespaces to different tinydb components. You must use the set namespace block to ensure you are using the correct namespace.

Welchen Sinn hat es TinyDB1,TinyDB2, TinyDB3 zu definieren, wenn damit das gleiche gemeint ist?
Es sorgt doch nur für Verwirrung.
Kann man mir ein Beispiel nennen, wo es sinnvoll ist, unterschiedliche Namen zu verwenden (bei keiner oder der gleichen Angabe des Namespaces).
Verschiedenen Daten kann man ja nur mit verschiedenen Namespaces ansprechen.

The same could be argued for many of the other components.....

You would use namespaces to separate datasets for specific uses or users, different xml files are used for each namespaces so would possibly help to speed things up with large datasets

Da bin ich anderer Meinung.
Wenn ich von file1 und file2 spreche, weiß jeder, dass ich zwei unterschiedliche files meine.
Das gleiche gilt für die Namespaces, auch da stehen unterschiedliche Namen für unterschiedliche Datenmengen.
Logisch wäre also doch, dass unterschiedliche DB-Namen unterschiedliche DBs definieren.
Wie geschrieben, logisch ist dies nicht.

Let me explain this with object-oriented programming: You have a class (TinyDB) which has multiple methods (get, store, delete). Multiple instances of this class can do different things (connect to different databases). In the file component, different files are referenced with their filename when the instance is created. In our TinyDB component, different databases are referenced with their namespace.

This is not true. Of course you can do in Java

File file1 = new File("foo.txt");
File file2 = new File("foo.txt");
// you can even do
file1 = new File("bar.txt");
1 Like

nein, das weiß nicht jeder, denn die File1 Komponente und die File2 Komponente können auch hier auf die gleiche Datei zeigen

Taifun

1 Like

Aber es liegt nahe, dass zwei unterschiedliche Bezeichner zwei unterschiedliche Dinge bezeichnen.
Aber da bin ich vielleicht zuviel Mathematiker, wo Eindeutigkeit sehr hoch geschätzt wird.
Je donne ma langue au chat :wink: