Utilizzo base di Gambas e Sqlite3

Da Gambas-it.org - Wikipedia.
Versione del 5 gen 2017 alle 16:25 di Vuott (Discussione | contributi) (Creata pagina con "=Gambas e Sqlite= (pagina a cura di Fea Sergio - f.surfing@tiscali.it) Questo piccolo articolo vuole essere una semplice guida all'utilizzo base di Gambas e ''Sqlite3'', ri...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Gambas e Sqlite

(pagina a cura di Fea Sergio - f.surfing@tiscali.it)


Questo piccolo articolo vuole essere una semplice guida all'utilizzo base di Gambas e Sqlite3, rivolto a chi effettua i primi passi con questo linguaggio di programmazione ed ha necessità di realizzare un applicazione stand-alone che debba immagazzinare una certa quantità di dati in db.


Creazione di un database

Il primo passo che dovremo realizzare sarà appunto creare un database adatto alle nostre esigenze, per far ciò utilizziamo la classe connection del componente gb.db.

Questa classe ha bisogno di alcuni parametri che andremo a fornirgli in questo modo:

 Dim sName AS String   ' sName è una variabile che indica il nome che diamo al nostro database
 Dim sPercorso as String   ' indica il percorso in cui andremo a creare il db
 Dim$hConn as NEW Connection
 
 sName=”prova”
 sPercorso=user.home      ' definiamo come percorso la nostra home
 
 With $hConn
   .Type = "sqlite3"   ' indicazione del tipo di database da utilizzare
   .Host = sPercorso
   .Login = ""
   .Password = ""
 End With

a questo punto possiamo procedere alla creazione verificando però che il db non sia già presente altrimenti visualizzeremo una finestra di errore:

 $hConn.Open
 
 If Not $hConn.Databases.Exist(sName) Then   ' verifica che il db non esista
   $hConn.Databases.Add(sName)
' crea il nostro db
 Else
   Message.Error("database già esistente", "OK")
 Endif
 
 $hConn.Close

Così abbiamo creato il nostro db ma non ha ancora nessuna tabella all' interno e quindi è inutilizzabile, per realizzare la struttura possiamo utilizzare la funzione .tablefields.add oppure sfruttare un query SQL .

Considerando la seconda ipotesi e volendo creare una tabella di nome "biblio" con dei dati biografici quali:

nome
cognome
indirizzo

procederemo con una query di questo tipo:

sql = "CREATE TABLE 'biblio' ( 'id' INTEGER PRIMARY KEY AUTOINCREMENTAL, 'nome' VARCHAR(255) DEFAULT NULL, 'cognome' VARCHAR(255) DEFAULT NULL, 'indirizzo' VARCHAR(255) DEFAULT NULL);"

il tutto scritto in un unica riga.

Si noti il campo “id” che contiene l' indice del database ed è di tipo integer autoincrementante (ovvero ogni volta che inseriamo un record il rispettivo id verrà inserito automaticamente.

Tutti gli altri campi io per abitudine li creo di tipo testo con lunghezza 255 caratteri.


Quindi il nostro codice per la creazione del db sarà cosi modificato:

Public Sub Button1_Click()

 Dim sName As String   ' sName è una variabile che indica il nome che diamo al nostro database
 Dim sPercorso As String   ' indica il percorso in cui andremo a creare il db
 Dim $hConn As New Connection
 Dim sql As String
 Dim htable As Result
 
 sName = "prova"
 sPercorso = User.Home   ' definiamo come percorso la nostra home
 
 With $hConn
   .Type = "sqlite3"   ' indicazione del tipo di database da utilizzare
   .Host = sPercorso
   '".Login = ""
   ' .Password = ""
 End With
 
 $hConn.Open
 
 If Not $hConn.Databases.Exist(sName) Then   ' verifica che il db non esista
   $hConn.Databases.Add(sName)   ' crea il nostro db
   $hConn.Close   ' chiude il db
   $hConn.Name = sName
   $hConn.Open()   ' riapre il db per l' aggiunta della tabella
   
' scrivere la query su un unica riga oppure separarla con i separatori &
   sql = "CREATE TABLE 'biblio' ( 'id' INTEGER PRIMARY KEY, 'nome' VARCHAR(255) DEFAULT NULL, 'cognome' VARCHAR(255) DEFAULT NULL, 'indirizzo' VARCHAR(255) DEFAULT NULL);"
 
   hTable = $hConn.EXEC(sql)
 
   $hConn.Commit
   Label1.Text = "Database creato"
 Else
   Message.Error("database già esistente", "OK")
 Endif
 
 $hConn.Close
 
End








Pagina in costruzione !