D 2016-03-21T17:47:36.930 L SQLite N text/x-markdown P 2e83b7ddecfd97c43c1b0190c0ef98a182d5856f U offray W 2448 # SQLite [SQLite](http://sqlite.org/) 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](http://sqlite.org/whentouse.html): Para ver más sobre los escenarios en los cuales SQLite puede ser usado. - [DB Browser for SQLite](http://sqlitebrowser.org/): Una herramienta visual de código abierto para crear diseñar, editar, importar, exportar y transformar archivos compatibles con SQLite. - [NBSQLite3](http://www.samadhiweb.com/NBSQLite3.html): 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](wiki?name=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 ]. Z a95f05579a723b0070418f3b8ffb9267