Com accedir a SQLlite amb Gambas
Gambas és un llenguatge Basic per a Linux. El més interessant és que ens proporciona un entorn RAD (Rapid Application Development) de l'estil del Visual Basic prou eficient.Qualsevol aplicació professional acaba atacant a una base de dades. Una opció interessant a Linux és fer servir SQLite.
La combinació de Gambas i SQLite és, doncs, una possibilitat a tenir en compte a l'hora de desenvolupar aplicacions sobre Linux.
Com utilitzar Gambas i SQLite conjuntament? faré un experiment
Primer de tot crearé una base de dades de SQLite, en aquet cas, d'SQLite2 (podria ser SQLite3)
La base de dades tindrà una taula taula1, amb dues columnes: ID (integer, clau primària) i VALOR (text)
Per a crear la DB podem fer servir la utilitat Gambas2 DB Manager que es proporciona juntament amb la instal·lació de Gambas.
També podria fer servir el client en mode text de SQLite.
Informo algunes dades de prova a taula1
Al Gambas:
Creo un formulari amb una textbox i tres botons (Obtenir, Netejar i Sortir)
Obtenir: mostra el contingut de la taula1
Netejar: esborra la textbox
Sortir: acaba l'aplicació.
Per exemple, alguna cosa així:
El codi BASIC seria el següent:
' Gambas class file
PRIVATE conConnexio AS Connection
PRIVATE trTaulaResultats AS Result
PUBLIC SUB _new()
' res
END
PUBLIC SUB Form_Open()
' res
END
PUBLIC SUB Button1_Click()
PRINT ("[Button1_Click] Connecta")
conConnexio = NEW Connection
conConnexio.Type = "sqlite2"
conConnexio.Host = "/home/albert/databases/sqlite2"
conConnexio.Name = "proves.db"
TRY conConnexio.Open()
IF ERROR THEN
Message.Error("Error al connectar amb la base de dades.")
conConnexio = NULL
ELSE
trTaulaResultats = conConnexio.Exec("Select * from taula1")
Neteja
WHILE trTaulaResultats.Available
MostrarCamps
trTaulaResultats.MoveNext
WEND
conConnexio.Close()
END IF
END
PUBLIC SUB Button2_Click()
FMain.Close()
STOP EVENT
END
PUBLIC SUB Button3_Click()
Neteja
END
PUBLIC SUB MostrarCamps()
TextArea1.text = TextArea1.text & "id: " & trTaulaResultats["id"] & "; valor: " & trTaulaResultats["valor"] & Chr(13)
END
PUBLIC SUB Neteja()
TextArea1.text = ""
END
No hi ha pèrdua possible:
crea un objecte de connexió
conConnexio = NEW Connection
indica que és una connexió del tipus SQLite2, podria ser d'altres: SQLite3, MySQL, Postgres, FireBird... conConnexio.Type = "sqlite2"
indica l'ubicació de la BD a obrir conConnexio.Host = "/home/albert/databases/sqlite2"
conConnexio.Name = "proves.db"
i obre la connexió. Fixem-nos com obre la connexió dins d'un TRY. TRY conConnexio.Open()
Si hi ha un error, ho indica; IF ERROR THEN
Message.Error("Error al connectar amb la base de dades.")
conConnexio = NULL
ELSE
...
i si no, mostra les dades:
Obté el resultset (fent servir terminologia java), dataset (delphi) o recordset (VB). trTaulaResultats = conConnexio.Exec("Select * from taula1")
mentres tingui files per mostrar disponibles (available)
WHILE trTaulaResultats.Available
mostra la fila
MostrarCamps
avança fins la següent fila
trTaulaResultats.MoveNext
WEND
quan ha recorregut tot el conjunt de resultats, tanca la connexió
conConnexio.Close()
Per mostrar els resultats recupera el valor de cada columna per nom, els concatena amb una mica de format i afegeix un salt de línea amb Chr(13). tot plegat ho afegeix al contingut preexistent a la textbox
TextArea1.text = TextArea1.text & "id: " & trTaulaResultats["id"] & "; valor: " & trTaulaResultats["valor"] & Chr(13)
Aquest seria el HelloWorld! de Gambas2+SQLite.
Cap comentari:
Publica un comentari a l'entrada