German Dateneingabe in Spinners

Anne

Member
Licensed User
Longtime User
Hallo Klaus

Ich steh' schon mal wieder auf dem Schlauch. Dabei ist mein Problem ganz simpel: Ich habe 2 Spinner-Views, wobei der zweite Spinner von der Eingabe des ersten abhängig ist. Zuerst suche ich alle bestehenden Datenbanken (.db) und übertrage sie in die Liste des ersten Spinners. Wenn die Datenbank ausgesucht ist, kann ich die zweite Spinnerliste mit allen in der Datenbank vorhandenen Tabellennamen füllen.

Aber ich kann anstellen, was ich will, ich komme schlicht und ergreifend nicht zur Auswahl der Datenbank. Wenn ich aber keine Datenbank angebe, kann ich auch keine Tabelle finden und meine Query geht den Bach runter.

Ich habe alle Views im Designer vorgenommen und so sehen die Codings aus - Ist ziemlich viel, aber das Abspecken ist so eine Sache, vielleicht werfe ich etwas Entscheidendes raus:


Sub DBTableEntry

Dim DBList As List
Dim Query1 As String
Dim Cursor1 As Cursor

DBList.Initialize()

DBList = File.ListFiles (File.DirAssets)
DBList.Sort(True)

spnDatabase.Color = Colors.Yellow
spnDatabase.TextColor = Colors.RGB (0,0,0)
spnDatabase.TextSize = 10
spnDatabase.Prompt = "Datenbank"

If DBList.Size > 1 Then
For i = 0 To DBList.Size - 1
FileName = DBList.Get(i)
If FileName.EndsWith(".db") Then
spnDatabase.Add (FileName)
Log(FileName)
DBFileName = FileName
End If
Next
End If

End Sub

Sub spnDatabase_Itemclick (Position As Int, Wert As String)

Dim cursor1 As Cursor
Dim TableName As String

DBFileName = Wert
spnTableName.Color = Colors.Yellow
spnTableName.TextColor = Colors.RGB(0,0,0)
spnTableName.TextSize = 10
spnTableName.Prompt = "Tabelle"

cursor1 = SQLDatabase.ExecQuery ("SELECT name FROM sqlite_master WHERE type = 'table'")
For i = 0 To cursor1.RowCount - 1
cursor1.Position = i
TableName = cursor1.getstring("name")
spnTableName.Add (TableName)
Log (TableName)
Next
cursor1.Close
End Sub

Sub spnTableName_Itemclick (Position As Int, Wert As String)

DBTableName = Wert

End Sub
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Hallo Anne,
Eine Frage: Wo und wie hast du SQLDatabase definiert und initialisiert ?
Die Datenbanken in DirAssets musst Du irgenwo anders kopieren, man kann sie in DirAssets nicht ansprechen weder lesen noch schreiben.

Noch zwei Punkte:
- Es ist meistens besser wenn Du dein Projekt als zip Datei postest (IDE Menü Files / Export As Zip).
Es ist für uns dann viel leichter zu helfen weil wir das Programm testen können unter den gleichen Bedingungen wie Du.
- Wenn Du Code postest ist es besser ihn zwischen [ CODE ] [ /CODE ] ohne die Leerzeichen einzugeben oder den # Button drücken dann wird der Code im Post automatisch formattiert.

Beste Grüsse.
 

Anne

Member
Licensed User
Longtime User
Dateneingabe mit Spinners

Hallo Klaus

Aufgaben gibst du mir! Zippen kann ich schon seit Jahren, aber wie ich eine Zip-Datei ins Forum bringe, das wusste ich bis heute noch nicht. Ich hoffe dass ich das Problem zu deiner Zufriedenheit gelöst habe.
Die verschiedenen Basic4android-Verzeichnisse waren der erste Grund, warum ich über b4a geflucht habe. Seither liegt immer die Seite 186 des Beginners Guides neben mir.
Die Icons der WRAP-Tags im Kopf dieses Editors habe ich zwar wahrgenommen, wusste aber nichts damit anzufangen, Jetzt weiss ich auch das, Das nächste Mal kommt der Code gekennzeichnet ins Forum.
Da ich weiss, wie schnell du bist - viele Grüsse bis morgen. Gruss Anne.
 

Attachments

  • Source.zip
    17.3 KB · Views: 182

Anne

Member
Licensed User
Longtime User
Hallo Klaus

Wenn ich's selbst gezippt hätte, wäre sie dabei gewesen. Jetzt weiss ich ja, wie der Upload geht. :sign0013: Gruss Anne
 

Attachments

  • kunden.zip
    5.7 KB · Views: 181

Anne

Member
Licensed User
Longtime User
Hallo Klaus

Vielen Dank für die Abänderung des Programmes. So habe ich das Programm auch immer zum Laufen gebracht. Aber es gibt vielleicht viele verschiedene Datenbanken auf dem Phone/Tablet und da kann ich nicht probehalber die erste nehmen. In meinem Falle war das eine blitzeblanke neue Datenbank, die keine Tabellen hatte und das Programm stieg darum beim open aus. Das Problem bleibt also bestehen: Wie kann ich das Programm stoppen, damit ich die Datenbank auswählen kann, die dann für den Tabellenspinner verwendet wird?

Viele Grüsse und noch mehr Dank Anne
 

klaus

Expert
Licensed User
Longtime User
Wie kann ich das Programm stoppen, damit ich die Datenbank auswählen kann, die dann für den Tabellenspinner verwendet wird?
Das ist doch drin !
Auf den oberen Spinner drücken und Datenbank auswählen.
Da vorläufig nur eine drin ist merkst Du es nicht.
In meinen Programmen zeige Ich immer etwas an damit der Benutzer direkt etwas zu sehen bekommt. Auswählen kann er ja so wie so.
In unserem Beispiel sind es die erste Datenbank und erste Tabelle.

Du kannst ja, wenn das Programm verlassen wird, die Nummern der akuellen Datenbank und Tabelle in einer Datei speichern und diese beim nächsten Aufruf gleich anzeigen.

Beiliegend das gleiche Projekt mit drei Datenbanken.

Beste Grüsse.
 

Attachments

  • Source2.zip
    25.1 KB · Views: 185

Anne

Member
Licensed User
Longtime User
Hallo Klaus

Ja, du hast Recht. Leider war die im Eingabefeld angezeigte Datenbank meine Profil-Datenbank, die den Benutzer nichts angeht, denn sie wird nur verwendet, wenn der User eine neue Datenbank anlegen will. Ich muss die Datenbank programmmässig übergehen, dann geht's. Nachdem das Baby endlich geboren ist, können wir uns wieder anderen Dingen widmen.
Ich danke dir recht, recht herzlich. Wenn ich kann, werde ich dir auch mal einen Stein in den Garten werfen. Vorerst aber bin ich der Lehrling und du der Meister.
Bis nicht so bald. Anne
 
Top