Gambas-it

Gambas3 => Programmazione => Topic aperto da: dex - 02 Luglio 2019, 01:08:11

Titolo: Caricare nomi tabelle in Listwiew
Inserito da: dex - 02 Luglio 2019, 01:08:11
Ciao raga

devo caricare tutti i nomi delle tabelle presenti in un database in una listwiew
esempio: Database Sedi Tabelle sede1, sede2 ecc..
non posso aggiungerle a mano in quanto non so a priori ne la quantita ne il nome delle tabelle
no so da dove cominciare, mi date una dritta
Titolo: Re:Caricare nomi tabelle in Listwiew
Inserito da: Gianluigi - 02 Luglio 2019, 11:32:32
Per quanto riguarda SQLite la query è
Codice: [Seleziona]
SELECT name FROM sqlite_master WHERE type = "table"

Questo può aiutare?:
https://dev.mysql.com/doc/refman/8.0/en/show-tables.html
Titolo: Re:Caricare nomi tabelle in Listwiew
Inserito da: naderit - 02 Luglio 2019, 21:51:19
ciao dex come dice Gianluigi devi usare una tabella denominata sqlite master
Codice: [Seleziona]
Public Sub Button17_Click()
Dim nometab As Result
Dim sql As String
Dim i As Integer
Mod_Open.$conn.Close
ListBox4.Clear
Mod_Open.db_clienti 'connessione al db'

sql = "SELECT name FROM sqlite_master WHERE type = 'table'" 'è possibile ottenere l'accesso a nomi di tabella e indice facendo un SELECT su una tabella speciale denominata "sqlite_master"'
 nometab = Mod_Open.$conn.Exec(sql, Null)

For i = 0 To nometab.Max ' ciclo per scrivere i nomi delle tabelle nella listbox'
  nometab.MoveTo(i)
  ListBox4.Add(nometab[0])
Next
Mod_Open.$conn.Close

End

Codice: [Seleziona]
Public Sub open_fileanno()
Dim nometab As Result
Dim sql As String
Dim i As Integer

Mod_Open.db_clienti ' connessione al db'
 
 sql = "SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE '2%'" 'è possibile ottenere l'accesso a nomi di tabella e indice facendo un SELECT su una tabella speciale denominata "sqlite_master" con LIKE puoi filtrare le tabelle'
 nometab = Mod_Open.$conn.Exec(sql, Null)

For i = 0 To nometab.Max ' ciclo per scrivere i nomi delle tabelle nella listbox filtrati con LIKE'

  nometab.MoveTo(i)
  ListBox3.Add(nometab[0])
Next

Mod_Open.$conn.Close

End

 :ciao:
Titolo: Re:Caricare nomi tabelle in Listwiew
Inserito da: dex - 04 Luglio 2019, 12:16:49
grazie raga
ora faccio delle prove, il database è mysql e se non funziona mi riverso le tabelle in sqlite e poi provo il codice di naderit
Titolo: Re:Caricare nomi tabelle in Listwiew
Inserito da: Gianluigi - 05 Luglio 2019, 09:24:14
Per MySQL ho trovato questa risposta:
https://stackoverflow.com/questions/3913620/get-all-table-names-of-a-particular-database-by-sql-query
Titolo: Re:Caricare nomi tabelle in Listwiew
Inserito da: dex - 05 Luglio 2019, 18:06:24
 :ok: :ok:
grazie Gian