Italian B4J - Listview con nomi delle tabelle del db sqlite

GuidoS

Member
Licensed User
Longtime User
Ciao ragazzi !!1
spero che qualcuno mi possa aiutare ......
devo caricare una listview con i nomi delle tabelle ( solo quelle che iniziano per xxx) presenti nel db SQLite.

Grazie a tutti in anticipo

Guido
 

maXim

Active Member
Licensed User
Longtime User
Ciao Guido,

non ho ben capito la tua richiesta... se per caso ti riferisci a come ottenere i nomi delle tabelle presenti in un database SQLite ti propongo la seguente select:

"SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE 'xxx%' ORDER BY name;"

... in questa maniera ottieni il nome di tutte le tabelle filtrate dall'operatore
LIKE...

Spero di esserti stato utile...

Massimo
 

LucaMs

Expert
Licensed User
Longtime User
Beh, non sono certissimo che ci sia un esempio completo o se l'ho costruito utilizzando vari esempi.

So che io ho iniziato (e momentaneamente sospeso) un progetto B4J che carica una listview con i nomi delle tabelle.

Probabilmente ho aggiunto questa routine al modulo DBUtils:
B4X:
' Get all tables names as list
Public Sub GetTables(DB As SQL) As List
    Dim lstTables As List
    lstTables.Initialize
    ExecuteList(DB, "SELECT name FROM sqlite_master WHERE type = 'table'", Null, 0, lstTables)
    Return lstTables
End Sub

al quale puoi aggiungere un parametro tipo Prefisso o Prefix e modificare la routine o modificare direttamente la query come ti ha indicato Massimo, se preferisci.

Poi, a quanto vedo, ho fatto una cosa un po' contorta (evidentemente mi serviva) invece di caricare direttamente la listview:

uhm, faccio prima a postare tutto il progetto?

Poi vedo, ora non ho tempo.

Cmq, la riga che carica il nome (ma non solo questo) è:

tvw.Root.Children.Add(TableNameItem)
 

GuidoS

Member
Licensed User
Longtime User
Grazie Massimo !
La select che mi hai consigliato è perfetta !!

thank's ;)

Guido
 

GuidoS

Member
Licensed User
Longtime User
LucaMs Grazie anche a te !

Con la select consigliata da Massimo avrei risolto ma te mi stai facendo venir appetito e sono interessato a vedere come hai risolto.

Sai ... non si finisce mai di imparare ........ :D:D

Cmq sto usando la DBUtils ma la routine da te consigliata (GetTables) non c'è...... la aggiungo ! ;)

L'ultima riga non l'ho capita me la puoi rispiegare per favore quando hai tempo ?

Grazie di tutto

Guido :)
 

GuidoS

Member
Licensed User
Longtime User
Scusa LucaMs ...... ma come si usa il parametro "Return lstTables"

tipo con il seguente codice :

"Dim lst1 As List
lst1 = DBUtils.GetTables(SQL1) "

dove SQL1 è il database interessato

Se non ho capito male dovrebbe funzionare così ? Giusto

Però ora non ho tempo lo provo domani

Grazie a tutti

Buonanotte !!! ;)
 

LucaMs

Expert
Licensed User
Longtime User
Alura!

Io conosco ben poco B4J.

Tempo fà stavo iniziando una sorta di Query Builder (cui aggiungere in seguito anche un generatore di classi e magari di interfacce grafiche, per poi passare tutto nelle app B4A).

Ti allego quanto avevo fatto fino a quel momento.

Vedrai che con un doppio click sul nome della tabella, viene creata una decente custom view.
Il problema, a quel punto, era poter effettuare il drag&drop per collegare i campi delle tabelle, problema non risolto.

(si, la routine va usata in quel modo)
 

Attachments

  • lmQueryBuilderFirstSteps.zip
    10.5 KB · Views: 301

GuidoS

Member
Licensed User
Longtime User
Ciao LucaMs !
Grazie per la condivisione del tuo progetto.
Ottimo lavoro !! ora ho capito la riga di codice che mi avevi passato ieri sera.

Studierò il tuo codice per imparare alcune cose che devo fare e già mi chiedevo come.

Alcune le risolvo con il tuo codice altre le dovrò studiare e se non riesco chiederò ancora aiuto !

Grazie ancora di tutto !! :)
 
Top