Grafoscopio

SQLite
Login

SQLite

SQLite es un motor de bases de datos liviano y autocontenido que está desplegado en una gran cantidad de dispositivos y lugares (es quizás el motor de bases de datos de mayor despliegue en el mundo). Se puede usar para varias operaciones con datos, con una configuración mínima y muy buen desempeño.

Referencias extra

Instalación:

Debido a que sólo hasta abril de 2016 (aprox.) Pharo soportará nativamente 64 bits, para integrar SQLite a Grafoscopio, se debe instalar la versión de 32 bits de SQLite, ejecutando desde el playground:

GrafoscopioBrowser updateGrafoscopio
ExternalApp installSQLite32Bits

Luego ejecutamos, la instalación NBSQlite que crea la interface entre Pharo y SQLite:

Gofer new
url: 'http://ss3.gemtalksystems.com/ss/NBSQLite3';
package: 'NBSQLite3';
load.

Inicio rápido

Para probar que la interface entre los dos sistemas funciona correctamente ejecutamos este código (ejecutable tambíen en el spotter desde http://ws.stfx.eu/POQCW0NVKZJN):

| db resultSet row |

db := NBSQLite3Connection openOn: ':memory:'.
[ db basicExecute: 'create table x (xk integer primary key, iv integer, tv text)'.
  db beginTransaction.
  db execute: 'insert into x values (NULL, ?, ?)'
	with: #(1 'two').
  db execute: 'insert into x values (NULL, ?, ?)'
	with: #(2 'three').
  db commitTransaction.

  resultSet := db execute: 'select * from x'.
  [ (row := resultSet next) isNotNil ] whileTrue: [
	| xk iv tv |
	xk := row at: 'xk'. 
	iv := row at: 'iv'.
	tv := row at: 'tv'.
	Transcript show: 'xk = ', xk asString, ' (', xk class asString, ')'; cr.
	Transcript show: 'iv = ', iv asString, ' (', iv class asString, ')'; cr.
	Transcript show: 'tv = ', tv asString, ' (', tv class asString, ')'; cr ].
  resultSet close.
] ensure: [ db close ]. 

Que debería verse así:

NBSQLite quick start