|
|
SQLite: Acceso a SQLite 3 mediante Delphi 6 y ZeosDBO en Windows XP
![]() Os explicamos paso a paso cómo acceder a SQLite mediante el lenguaje de programación Borland (ahora Codegear) Delphi 6.0 utilizando el componente gratuito ZeosDBO (acceso nativo, no necesita de instalación de ningún tipo).
Definición de SQLiteSQLite es un sistema de gestión de bases de datos relacional compatible con ACID (Atomicity, Consistency, Isolation and Durability ó Atomicidad, Consistencia, Aislamiento y Durabilidad). SQLite sólo necesita una librería (biblioteca) que ocupa poco más de 700KB (tclsqlite3.dll). Desarrollada en C, SQLite es un proyecto de dominio público creado por D. Richard Hipp. A diferencia de los sistemas de gestión de base de datos cliente-servidor (Oracle, MySQL, Microsoft SQL Server, DB2, etc.), el motor de SQLite no es un proceso independiente con el que el programa principal se comunica, sino que es una biblioteca (finchero DLL) que se enlaza con el software mediante llamadas a funciones y subrutinas. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. La base de dato SQLite (definiciones, tablas, índices y datos) se guarda como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción. Actualimente, SQLite va por la versión 3.6.11, que permite bases de datos de hasta 2 Terabytes de tamaño, y también permite la inclusión de campos tipo BLOB. Este motor de base de datos es muy útil para realizar aplicaciones de propósito general que necesiten guardar datos en base de datos y que no sean "intrusivos", es decir, programas que con un ejecutable, una DLL y un fichero de base de datos funcionarían perfectamente, sin necesidad de instalación de motores de base de datos, ni de níngún otro componente. Acceso a SQLite mediante Borland Delphi 6, ZeosDBO y Windows XPInstalación del componente ZeosDBO en Borland Delphi 6En primer lugar instalaremos los componentes gratuitos de acceso a base de datos ZeosDBO, en su versión 6.6.4 permite acceso nativo a SQLite 3.0 (también a Oracle, MySQL, Postgresql, SyBase, Firebird, etc.). Accederemos a la URL: http://sourceforge.net/project/showfiles.php?group_id=35994&package_id=28219 Descargaremos el fichero de Zeos Database Objects, pulsando en el enlace "ZEOSDBO-6.6.4-stable.zip": Una vez descargado el fichero ZEOSDBO-6.6.4-stable.zip de 1,56MB lo descomprimiremos. Copiaremos la carpeta ".../src" de este fichero a la carpeta de instalación de Borland Delphi, por defecto: C:/Archivos de programa/Borland/src Copiaremos el contenido de la carpeta ".../packages/delphi6" a la carpeta: C:/Archivos de programa/Borland/Delphi6/Lib Abriremos Borland Delphi 6, desde el menú "File" pulsaremos en "Open", accederemos a la carpeta: C:/Archivos de programa/Borland/Delphi6/Lib y seleccionaremos el fichero ZeosDBO.bpg: Pulsaremos en el menú "View" - "Project Manager": En la ventana "Project Manager" pulsaremos con el botón derecho sobre "ZCore60.bpl", en el menú emergente pulsaremos "Compile": De la misma forma compilaremos también (en el orden indicado) ZParseSql60.bpl, ZPlain60.bpl y ZDbc60.bpl. Tras compilar los ficheros pulsaremos con el botón derecho sobre ZComponent60.bpl y seleccionaremos "Install": Si todo es correcto, nos mostrará este mensaje indicando que los componentes ZeosDBO han sido correctamente instalados:
Cerraremos Borland Delphi sin guardar los cambios y ya podremos utilizar los componentes gratuitos ZeosDBO, aparecerá una nueva pestaña en la paleta de componentes llamada Zeos Access: Acceso a SQLite con Delphi y ZeosDBOAbriremos Borland Delphi 6, en el menú "File" - "New" - "Application", en la pestaña "Zeos Access" pulsaremos en el componente "ZConnection". En la propiedad "Protocol" del componente "ZConnection" seleccionaremos "sqlite-3": En la propiedad "Database" del componente ZConnection seleccionaremos el fichero de base de datos SQLite que previamente habremos creado tal y como indicamos en el siguiente artículo: Creación de una base de datos SQLite en Windows XP Si intentamos realizar una conexión cambiando el valor de la propiedad "Connected" del componente ZConnection a "True" nos dará este error:
Debido a que no tenemos la librería "sqlite3.dll". Para solucionarlo y poder acceder de forma nativa a SQLite mediante Borland Delphi y ZeosDBO deberemos descargar esta librería (DLL) de la web de SQLite (es gratuita), desde la URL: http://www.sqlite.org/download.html Seleccionaremos en "Precompiled Binaries For Windows" el enlace "sqlitedll-3_6_12.zip": Una vez descargado este fichero lo descomprimiremos, el fichero sqlite3.dll que contiene podremos copiarlo a la carpeta del sistema (de esta forma valdrá para cualquier aplicación que ejecutemos en el equipo y que necesite acceso a SQLite): C:/Windows/System32 O bien puede estar en la misma carpeta que el ejecutable de la aplicación (sólo servirá para ese ejecutable). Tras copiar este fichero ya podremos conectarnos a la base de datos, en nuestro caso a: C:/bdsqlite/ajpdsoft Para ejecutar consultas SQL sobre la base de datos SQLite anterior, añadiremos un componente de ZeosDBO llamado "ZQuery", en la propiedad "Connection" del "ZQuery" seleccionaremos el ZConnection anterior ("ZConnection1"): Para poder mostrar los resultados de las consultas SQL necesitaremos el componente de Delphi "DBGrid", para enlazar el DBGrid con el ZQuery utilizaremos un componente de Delphi "DataSource", en la propiedad "DataSet" de este componente introduciremos el nombre del componente ZQuery ("ZQuery1"): También enlazaremos el componente "DBGrid" con el DataSource, mediante la propiedad "DataSource" del "DBGrid": Para permitir ejecutar consultas SQL personalizadas añadiremos un componente "Memo" de la pestaña "Standard", añadiremos también un "Button": Añadiremos también un CheckBox para diferenciar las consultas DML (Data Manipulation Language) de tipo INSERT, UPDATE, DELETE, SELECT de las consultas DLL (Data definition Language) de tipo CREATE, ALTER, DROP, TRUNCATE. En el evento "Click" del "Button" añadiremos el siguiente código Delphi que será el que ejecute la sentencia SQL introducida en el Memo para SQLite: procedure TForm1.Button1Click(Sender: TObject); begin if FileExists (ZConnection1.Database) then begin ZQuery1.Close; ZQuery1.SQL.Clear; ZQuery1.SQL.Text := Memo1.Text; if CheckBox1.Checked then ZQuery1.Open else ZQuery1.ExecSQL; end else MessageDlg('No se ha encontrado el fichero de BD SQLite: ' + ZConnection1.Database, mtInformation, [mbok], 0); end; end. Pulsaremos F9 ó "Run" - "Run" para compilar la apliacación. Para probarla crearemos una tabla llamada "factura" con el siguiente código SQL:
Probaremos también a insertar algunos registros en la tabla añadida anteriormente:
Tras insertar los registros, marcaremos el check "Consulta de selección", añadiremos el SQL:
Pulsaremos en "Ejecutar" y podremos ver el resultado en el DBGrid: La gran ventaja de utilizar los componentes ZeosDBO gratuitos para acceso nativo a SQLite es que podremos utilizar el resto de componentes de acceso a datos de Borland Delphi, por ejemplo, podremos realizar la siguiente aplicación casi sin utilizar código fuente. Para ello añadiremos unos DBEdit (de la pestaña "Data Controls" de Delphi), enlazaremos estos DBEdit con el ZQuery mediante la propiedad "DataSource" de los DBEdit, donde pondremos "DataSource1". Para poder movernos por los registros, insertar y eliminar también añadiremos un "DBNavigator" (también lo enlazaremos con el "ZQuery1" mediante la propiedad "DataSource"): En la propiedad "SQL" del componente ZQuery1 añadiremos la siguiente consulta SQL:
Haremos doble clic sobre el "ZQuery1", pulsaremos con el botón derecho del ratón sobre la ventana del editor de campos, seleccionaremos "Add all fields": Si la conexión se establece correctamente con la base de datos SQLite se añadirán todos los campos de la tabla "factura" (la seleccionada en la consulta SQL del ZQuery1): En los componentes DBEdit, en la propiedad "DataField" de cada uno de ellos, seleccionaremos el campo que queramos mostrar (codigo, codigocliente, fecha, ...): Por último, para que cuando se inicie la aplicación se realice la conexión a la base de datos y se activen los componentes, en el evento "OnCreate" del formulario pondremos el siguiente código: procedure TForm1.FormCreate(Sender: TObject); begin ZConnection1.Connect; ZQuery1.Open; end; La aplicación en funcionamiento: A continuación os mostramos un vídeo que muestra un ejemplo sobre cómo crear una base de datos SQLite desde la línea de comandos, también explica paso a paso cómo crear una aplicación en Delphi utilizando ZeosDBO para acceder a SQLite, creando un DBGrid para mostrar el resultado de las consultas SQL. También añadimos controles enlazados para mostrar que con Delphi y ZeosDBO se puede acceder a una base de datos SQLite sin a penas utilizar código fuente: Como hemos demostrado, gracias a ZeosDBO (componente gratuito) y a Delphi podremos realizar una acceso nativo a SQLite sin necesidad de instalar software adicional. Podremos realizar aplicaciones completas con acceso a base de datos SQLite. Y, además, gracias a la integración que aportan los componentes ZeosDBO con Delphi, podremos utilizar los compones de acceso a datos de Delphi. En el ejemplo anterior hemos realizado un ejemplo que permite visualizar, añadir, modificar y eliminar registros de una tabla con sólo dos líneas de código.
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Anuncios
Enviado el Sábado, 04 abril a las 04:41:02 por ajpdsoft
|
|