Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | 84bd727923b6f1fa96551135dadd1de82b9f5f48 |
---|---|
Page Name: | SQLite |
Date: | 2016-03-21 17:55:25 |
Original User: | offray |
Mimetype: | text/x-markdown |
Parent: | 3efbe0cb06017cae2ed3e76823b5c087147ece07 (diff) |
Next | 817805656163191e12228e7b80930aba659a6136 |
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
- Appropriate Uses For SQLite: Para ver más sobre los escenarios en los cuales SQLite puede ser usado.
- DB Browser for SQLite: Una herramienta visual de código abierto para crear diseñar, editar, importar, exportar y transformar archivos compatibles con SQLite.
- NBSQLite3: Una interface entre Pharo y SQLite basada en NativeBoost por tanto compatible con las versiones de Pharo 4 y Moose 5.x. Habrá otras soporte para Pharo 5 y Moose 6, basándose en otras librerías y con soporte nativo para 64 bits.
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:
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:
| 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í: