Hola Amigos , aqui les traemos una pequeño articulo de SQLite
SQLite
SQLite Articulo en PDF
martes, 12 de abril de 2011
Publicado por
Gerard
en
17:39
Concatenación - UNION - uso de LIKE - Nombre de columnas con espacios
lunes, 6 de abril de 2009
SELECT codigo || nombre
FROM departamentos
UNION. Uso de UNION para armar una unica vista con diferentes tablas.
Asegurese de que se enumeraron la misma cantidad de columnas en cada una de las sentencias SELECT.
SELECT nombre FROM Clientes
UNION
SELECT nombre FROM Empleados
UNION
SELECT nombre from artistas
LIKE. Uso del comando LIKE en una sentencia SELECT.
% Se usa para reemplazar una cadena
_ Se usa para reemplazar un solo caracter.
SELECT nombre
FROM paises
WHERE nombre LIKE 'Z%'
BUSQUEDA EN TEXTO COMPLETO
Esto sería relativamente caro, pero lo suficientemente bueno en la mayoria de los casos. El término a buscar debe escribirse entre dos caracteres comodines y rodeado por comillas simples.
Se deberia construir la cadena literal en algun lenguaje de script - ¡No olvidar las comillas simples!
SELECT nombre FROM gisq.cia
WHERE nombre LIKE '%el%'
FUNCIONES DE AGREGADO. Mostrar un nombre de columna para una funcion de agregado
SELECT region, SUM(poblacion) AS Poblacion
FROM cia GROUP BY region
NOMBRES DE COLUMNAS CON ESPACIOS.
CREATE TABLE MonstruoEspacial("Balance de cuenta" INT);
INSERT INTO MonstruoEspacial VALUES (42);
SELECT "Balance de cuenta" FROM MonstruoEspacial
Publicado por
Gerard
en
14:56
Etiquetas: Material Traducido
EQUI-JOIN (inner join) - SELF JOIN
Comenzaremos este proyecto poniendo a disposición la traducción del contenido en el sitio SQLzoo.net.
Las traducciones no son literales, en algunos casos se han interpretados los textos a fin de poder proveer una mejor explicación de los ejemplos contenidos.
Si desean que se traduzca el contenido de algun otro sitio, seran bienvenidas sus sugerencias.
Bueno manos a la obra ...
Como usar un EQUI_JOIN (inner join) para relacionar dos tablas con el mismo nombreQueremos armar una consulta que muestre el identificador de empleado, nombre del empleado, identificador de su jefe, nombre de su jefe y el departamento al que pertenece su jefe.
Para esto, deberemos relacionar la tabla empleados consigo misma mediante un "self join".
A cada copia de la tabla le asignamos un "alias", en este caso usamos e para los empleados y j para los jefes y a partir de alli podemos tratarlas como tablas diferentes.
Por defecto la unión obtenida es interna (inner join), esto significa que Ruben (Un empleado sin jefe) no se muestra en los resultados.
CREATE TABLE empleados( id_empleado INTEGER PRIMARY KEY,
nbre_empleado VARCHAR(10),
id_dpto VARCHAR(10),
id_jefe INTEGER REFERENCES empleados
);
INSERT INTO empleados VALUES (1,'Ruben','Ing',NULL);
INSERT INTO empleados VALUES (2,'Juan','SoC',1);
INSERT INTO empleados VALUES (3,'Andres','SoC',2);
INSERT INTO empleados VALUES (4,'Alicia','SoC',2);
SELECT e.nombre as empleado, j.nombre as jefe, j.id_dpto as dpto_jefe FROM empleados e, empleados j WHERE e.jefe_id = j.empleado_id
Publicado por
Gerard
en
14:54
Etiquetas: Material Traducido
FISL 10 - Edicion Especial -
viernes, 27 de marzo de 2009
Se está acercando uno de los eventos de Software Libre más grandes del mundo, la decima edición del "Fórum Internacional de Software Livre" - FISL 10 -
Algunos de los panelista que pasaron por FISL fueron Ian Murdock -Debian - , Rasmus Lerdorf -PHP-, Richard Stallman -FSF- , Eric S. Raymond, Jon “maddog” Hall -Linux.org-
Esta edicion Especial se realizara del 24 al 27 de junio de 2009, en Porto Alegre, Rio Grande do Sul, Brasil.
SQLite Latino no se podia quedar fuera de este importante evento, por ello invitamos a la comunidad a visitar el web site del FISL , a traves del banner que esta en el sitio..
un Abrazo Gerardo Antonio
Publicado por
Gerard
en
6:52
Adelantos del nuevo e-Book de SQLite por El Tribuno
lunes, 23 de febrero de 2009
Desde ya están invitados a leer esta entrevista, sin dejar de agradecer tanto al Periódico El Tribuno como así también a su periodista Fernando Quiros, por el apoyo a este proyecto y la difusión del mismo.
Para más información les dejamos el blog de Fernando Quiros contando más detalles
+ colaboradores
lunes, 16 de febrero de 2009
Bienvenido, Welcome, Welkon, Benvenuto, Witamy, ect..
Un Fuerte Abrazo A TODOS!!! BIENVENIDOS!!!
Publicado por
Gerard
en
14:08
Entrevista a Daniel Maldonado de SQLite-Latino
sábado, 14 de febrero de 2009
Esta entrevista fue realizada hace algun tiempo, por el Sr. Franco Rivero de la Revista TuxInfo .
www.tuxinfo.com.ar , desde ya Agrademos que nos dejen publicar dicha Entrevista....
Franco Rivero: FR
Daniel Maldonado: DM
FR: Daniel, contanos un poco de que se trata este nuevo proyecto
DM:SQLite-Latino trata de dar a conocer esta excelente herramienta para el desarrollo de aplicaciones ya sea consideradas de complejidad media como así también los de grandes proyectos o sistemas.
Queremos hacer llegar a toda la gente de habla hispana la información referida a SQLite,
con respecto a sus características, ventajas, compatibilidad con diversos Lenguajes de Programación y demás curiosidades de lo que hemos denominado como el Pseudo Motor de Bases de Datos SQLite.
FR:Para los que no saben de que hablamos ¿Qué es SQLite?
DM:: Según D. Richard Hipp )creador de SQLite(, SQLite son librerías escritas en C
que implementa un motor de base de datos para SQL92 empotrable, Wikipedia también comparte y adopta este concepto, pero según el organizador de
esta comunidad )Gerardo Antonio Cabero(, SQLite permite dar otro tipo de enfoque a las bases de datos, y dejar de ser librería para convertirse en Pseudo
Motor - Aparenta ser un motor pero no lo es un nuevo concepto tomado como válido y que lo utilizamos como premisa para la Comunidad SQLite - Latino.
En tal sentido, Gerardo Antonio Cabero dice:
“Siempre he pensado que hay que dar un nuevo enfoque al desarrollo de las Base de datos, dejando a un lado ese carácter de librería para convertirse en algo más complejo como un Pseudo Motor de Bases de Datos.” Te comento que yo he intentado hablar con D. Richard Hipp y le he comentado de las caracterásticas de SQLite y que el da un nuevo enfoque al desarrollo de las bases datos a través de lo que hemos denominado Pseudo Motor . pero no e Tenido Exito...
SQLite tiene varias funcionalidades, que se entiende como las de un Motor de Base de datos Ejemplo, y con la carencias de otras. Tal es el Caso de La
integridad referencial. (La que actualmente se puede Simular)
FR: ¿Cuáles son las expectativas del proyecto SQLite Latino América a corto y a largo plazo?
DM Básicamente las primeras expectativas de este proyecto es dar a conocer las cualidades más destacadas de SQLite a toda Latino América y de algún modo captar su atención y alentarlos a probar este nuevo concepto para el desarrollo no sólo de prototipos de sistemas sino también de sistemas de alta complejidad.
Además, dar un espacio para que los interesados formulen sus preguntas, dudas y de algún modo generar un espacio de debate de usuarios expertos como así también de novatos en un plano .Por eso los invitamos a que nos visiten y nos acompañen a aprender junto a ustedes.
FR: ¿Quienes llevan adelante el proyecto y con que idea se reunieron a trabajar?
DM: El proyecto comenzó de la mano de Gerardo, al comienzo de todo lo tenía un poco bandonado, hasta que nos conocimos en una charla que el dió, sobre SQLite en Jujuy en las II Jornadas de Software Libre y luego al volver a tener contacto nuevamente en las II Jornadas de Software Libre en Salta. De ese modo realizó, como Gerardo la llamó, “la propuesta Indecente” de ser un administrador y formar juntos y con más fuerza la Comunidad de SQLite Latino y de algún modo continuar colaborando con la comunidad de Software Libre.
FR: Por último, ¿Cómo pueden colaborar los interesados?
DM: Bueno a todos los interesados desde ya le agradecemos sus visitas a la comunidad http://sqlite-latino.blogspot.com, Otro modo de colaborar con este fin es ayudando a traducir la documentación, enviarnos sus Review de SQLite y el comportamiento con otros lenguajes de programación y fomentando el uso de SQLite en el desarrollo de sistemas.
Desde ya agradecemos a Daniel por su tiempo, y queremos ofrecerles desde Tuxinfo a todos los proyectos independientes un espacio para que puedan difundir su trabajo y sus pensamientos, desde nuestra revista alentamos los proyectos que tanto bien hacen a nuestra comunidad y sepan que aquí tienen un espacio para la difusión....
Realizado por : Franco Rivero
Revista: TuxInfo www.tuxinfo.com.ar
Uso de SQLite por Alejandro Sandoval
domingo, 25 de enero de 2009
Hola Comunidad de SQLite Latino, Feliz comienzo de año 2009. hace unos dias El Sr. Alejandro Sandoval nos envio un articulo relacionado con SQLite. Agradecemos su aporte, Asi tambien todo estan invitados a participar de SQLite Latino
Basándose en el ejemplo, el análisis es el siguiente: viaje es una tabla intermedia para la relación de muchos a muchos entre buses y pasajero. Por lo tanto, y siendo los campos de la tabla viaje claves foráneas, no puedo permitir la inserción de un viaje si el bus o el pasajero no existen: si lo permitiera, no tendría integridad referencial, dejando inconsistente la base de datos.
Por esa razón, se crean los triggers, y esa es la lógica que están siguiendo en este caso. Despedacemos el primer trigger pa que quede más claro:
create trigger fki_viaje_buses : Con eso, creo el famosillo trigger, y su nombre es fki_viaje_buses
before insert on viaje : Esto nos asegura la pega: el trigger será ejecutado antes de insertar en la tabla viaje. Eso te garantiza que la inserción no generará un estado inconsistente.
for each row : Está diciendo... puro traducir: repetir el trigger para cada fila insertada. Lo que se va a ejecutar está dentro del begin - end, por si acaso.
select raise(rollback, 'Inserción en viaje viola restricción fki_viaje_buses')
where (select id from buses where id=new.id_bus) is null;Aquí está el detallito: le estamos diciendo que lance un error (y ejecute un rollback) cuando se cumpla la condición del where, es decir, si no hay ninguna tupla en la tabla buses que tenga un ID igual al ID del bus que está en la nueva tupla de viaje (la variablenew se ocupa para designar a la tupla que se intenta insertar). Como ves, es exáctamente lo que definimos en palabras antes de comenzar el análisis del problema.
La actualización es la misma situación, puesto que es en el fondo una inserción. De hecho, la única diferencia entre ambos triggers son los mensajes y el nombre.
La eliminación es ligeramente diferente, y pensemos en el caso de eliminar un bus. ¿Qué haré con los viajes asociados?
Las soluciones ahí son:
- on delete set null: poner los id_bus de viaje en null (lo que en una tabla intermedia no es factible, puesto que las FK son PK además).
- on delete cascade: si elimino un bus, elimino todos sus viajes.
- on delete restrict: no puedo eliminar un bus mientras hayan viajes asociados.
El trigger implementado al respecto sigue la última filosofía: no te dejará eliminar un bus mientras hayan viajes registrados con ese bus. En ese esquema, la lógica es al revés: hago el rollback si HAY viajes con el mismo bus_id que tiene old.id (como imaginarás, oldindica la tupla a eliminar).
El tema de los triggers para simular las FK no es tan complejo... pero igual hay que dedicarle su tiempo (en mi caso, significó aprender triggers primero, porque era materia nueva). Aún así, creo que no me demoré mucho en aprender lo necesario.Espero que hayas quedado más claro. Si hay más dudas, pregunta nomás: yo feliz de ayudar dentro de lo que pueda.
Publicado por
Gerard
en
18:31
Etiquetas: Prensa, SQLite y Triggers -IR-
Acceso a Bases de Datos SQLite desde Gambas
domingo, 14 de diciembre de 2008
Nuevamente volvemos a sumar más documentación integrando el pseudo motor de Bases de Datos SQLite y un lenguaje de programación visual que día a día esta atrapando a más programadores de plataformas libres como es Gambas.
En esta oportunidad les voy a dejar el enlace de la revista digital Tuxinfo Nº12 en la cual Pablo Mileti explica en 8 páginas como acceder y realizar consultas y actualizaciones integrando esta dos herramientas SQLite y Gambas y de alguna manera podemos complementar la información con lo que Marcos hace unas semanas atrás mostraba.
Publicado por
Daniel Maldonado
en
19:25
Etiquetas: SQLite y Gambas
Integridad Referencial
deseable en las bases de datos. Gracias a la integridad referencial se garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.
Extraido de la Wikipedia : www.wikipedia.org
=========================================================
La tabla PELICULAS tiene dependencia de otras dos: GENERO y SOPORTE.
Los triggers antes de insert y antes de update on Peliculas tienen en cuenta estas dos dependencias.
Para antes de delete hacen falta dos triggers: uno en Genero y otro en Soporte.
Estos triggers impiden que se pueda borrar un genero o un soporte, si hay peliculas que lo están
usando.
El código deja claro lo que se haría si la dependencia fuera de más tablas,sólo habría que añadir más OR y los triggers on delete.
Si la dependencia fuera solo de una tabla,se quitaría un OR y el delete que sobre.
CREATE TABLE [genero] (
[id_gen] INTEGER PRIMARY KEY NOT NULL,
[nombreGen] VARCHAR(40) UNIQUE NOT NULL
);
CREATE TABLE [soporte] (
[id_sop] INTEGER NOT NULL PRIMARY KEY,
[nombreSop] VARCHAR(20) UNIQUE NOT NULL
);
CREATE TABLE [peliculas] (
[id_pel] INTEGER NOT NULL PRIMARY KEY,
[id_genero] INTEGER NOT NULL,
[id_soporte] INTEGER NOT NULL,
[nombrePel] VARCHAR(40) NOT NULL
);
CREATE TRIGGER film_pel_in before insert on peliculas
for each row
begin
select case
when
(
(new.id_soporte is not null)
and
(new.id_genero is not null)
and
(
((select id_sop from soporte where
id_sop =new.id_soporte) is null)
or
((select id_gen from genero where
id_gen = new.id_genero) is null)
)
)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_pel_up before update on peliculas
for each row begin
select case
when
(
((select id_sop from soporte where
id_sop = new.id_soporte) is null)
or
((select id_gen from genero where
id_gen = new.id_genero) is null)
)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_sop_de before delete on soporte
for each row begin
select case
when
((select id_soporte from peliculas
where id_soporte = old.id_sop) is not null)
then raise(abort,'violacion integridad')
end;
end;
CREATE TRIGGER film_gen_de before delete on genero
for each row begin
select case
when
((select id_genero from peliculas
where id_genero = old.id_gen) is not null)
then raise(abort,'violacion integridad')
end;
end;
Publicado por
Gerard
en
17:57
Etiquetas: Practica y Ejemplos
Pequeña Consulta en SQLite3 utilizando el lenguaje C
lunes, 1 de diciembre de 2008
Publicado por
Gerard
en
5:05
Etiquetas: SQLite y C
Mono + NHibernate + SQLite
martes, 4 de noviembre de 2008

Después de usar por tanto tiempo Gentle.NET, un ORM que ha sido discontinuado, he decidido al fin comenzar a estudiar NHibernate. Los ejemplos que dan en los manuales y páginas son para Windows (con MS .NET) y SQL Server. Trabajando en GNU/Linux, hice las pruebas con SQLite.
El problema es que el driver utilizado por NHibernate para esta base de datos utiliza un binding desactualizado. Además Mono trae una implementación mejor, que soporta el standard ADO.NET 2.0, que es Mono.Data.Sqlite, disponible a partir de la versión 1.2.4.
El post es especialmente útil para aquellos que quieran utilizar en GNU/Linux (yo uso Ubuntu Gutsy), con Mono, NHibernate y SQLite, utilizando el binding Mono.Data.Sqlite. Si bien puede parecer esto tan fácil como seguir el documento QuickStart y cambiar las opciones correspondientes, no lo es si se intenta utilizar SQLite. Por eso, en este post no voy a explicar todas las cosas, ya que no me interesa y se pueden aprender en la documentación, sino que voy a desarrollar un ejemplo muy sencillo y mostrar cómo utilizar SQLite, ya que hay que solucionar unos problemas no muy triviales.
Cabe aclarar que, si bien todavía no lo he probado, los archivos de mapeo (hbm.xml) y el schema SQL se pueden autogenerar.
Primero creo la tabla que almacenerá los objetos en un archivo llamado, por ejemplo, data.db.sql:
CREATE TABLE personas (
id integer PRIMARY KEY,
nombre varchar(20),
apellido varchar(20)
);
Para el ejemplo utilicé la última versión de SQLite. Para crear la base de datos en el archivo data.db, ejecutamos:
La clase de ejemplo (Persona.cs):
using System;
namespace PruebaNHibernate
{
public class Persona
{
private int id;
private string nombre;
private string apellido;
public Persona()
{
}
public int Id {
get { return id; }
set { this.id = value; }
}
public string Nombre {
get { return nombre; }
set { this.nombre = value; }
}
Luego hay que escribir el archivo de mapeo, que es un XML.
namespace="PruebaNHibernate" assembly="PruebaNHibernate">
>
>
>
Este archivo se debe agregar como recurso en MonoDevelop.
Luego escribimos el archivo de configuración para nuestra aplicación (app.config):
name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
>
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
key="hibernate.dialect"
value="NHibernate.Dialect.SQLiteDialect"
/>
key="hibernate.connection.driver_class"
value="PruebaNHibernate.MonoDataSqliteDriver, PruebaNHibernate"
/>
key="hibernate.connection.connection_string"
value="Data Source=data.db,version=3"
/>
key="hibernate.query.substitutions"
value="true=1;false=0"
/>
key="hibernate.use_prox y_validator"
value="false"
/>
>
>
Nota: Debido a problemas con el hosting no puedo colocar, arriba, el string correcto en la última parte. La palabra prohibida “p r o x y” (sin espacios) tiene un espacio de más entre la “x” y la “y”. En fin, deshabilito en esas lineas la comprobación de clases p r o x y.
Luego en un archivo como Main.cs agrego código en el método principal Main para jugar con todo esto:
using NHibernate;
using NHibernate.Cfg;
namespace PruebaNHibernate
{
class MainClass
{
public static void Main (string[] args)
{
Configuration conf = new Configuration();
/* Con la siguiente línea leo todo los archivos con extensión
* hbm.xml embebidos como recurso en el assembly especificado */
conf.AddAssembly("PruebaNHibernate");
ISessionFactory sessionFactory = conf.BuildSessionFactory();
ISession s = sessionFactory.OpenSession();
ITransaction tx = s.BeginTransaction();
Persona p = new Persona();
p.Nombre = "Milton";
p.Apellido = "Pividori";
s.Save(p);
tx.Commit();
Console.WriteLine("p - Id: " + p.Id);
Console.WriteLine("p - Nombre: " + p.Nombre);
Console.WriteLine("p - Apellido: " + p.Apellido);
Console.WriteLine();
Persona p2 = (Persona)s.Load(typeof(Persona), p.Id);
Console.WriteLine("p2 - Id: " + p2.Id);
Console.WriteLine("p2 - Nombre: " + p2.Nombre);
Console.WriteLine("p2 - Apellido: " + p2.Apellido);
Console.WriteLine();
/* Verifico si son el mismo objeto p y p2, ya que estamos
* dentro de la misma sesión */
if (p == p2)
Console.WriteLine("p y p2 son el mismo objeto");
p2.Apellido = "Paduán";
s.Flush();
s.Close();
}
}
}
En el proyecto agregué estas referencias:
- NHibernate.dll
- System
Ahora vamos a lo que nos interesa. En el archivo app.config (que al compilar se traducirá a
key="hibernate.connection.driver_class"
value="PruebaNHibernate.MonoDataSqliteDriver, PruebaNHibernate"
/> …
NHibernate trae un driver para SQLite, como dije al principio, pero que utiliza un provider que fue discontinuado. Por lo tanto, para utilizar Mono.Data.Sqlite, cree una clase en mi assembly (PruebaNHibernate) con el nombre que se indica allí (MonoDataSqliteDriver):
using NHibernate.Driver;
namespace PruebaNHibernate
{
public class MonoDataSqliteDriver : ReflectionBasedDriver
{
public MonoDataSqliteDriver()
: base("Mono.Data.Sqlite",
"Mono.Data.Sqlite.SqliteConnection",
"Mono.Data.Sqlite.SqliteCommand")
{
}
public override bool UseNamedPrefixInSql
{
get { return true; }
}
public override bool UseNamedPrefixInParameter
{
get { return true; }
}
public override string NamedPrefix
{
get { return "@"; }
}
public override bool SupportsMultipleOpenReaders
{
get { return false; }
}
}
}
En el constructor de la misma le paso a mi clase padre los argumentos que necesita: nombre del assembly (en este caso “Mono.Data.Sqlite”), clase para crear la conexión y ejecutar comandos. Desconozco los detalles de SQLite, así que copié los métodos sobreescritos del driver viejo.
No pude hacer que NHibernate cargue el assembly “Mono.Data.Sqlite” desde el GAC, así que hay que copiarlo al directorio del ejecutable. Es necesario copiar otros archivos, como las dependencias de NHibernate y la base de datos (data.db). Se pueden bajar el proyecto completo para MonoDevelop aquí. El archivo obviamente no es un png, pero sino no lo puedo subir
Ahora bien, hay un problemita… el archivo System.Data.dll que viene con Mono 1.2.4 en Gutsy tiene un bug que hará que el ejemplo no funcione. El mismo ya fue solucionado en la versión 1.2.6. Así que, como workaround, pueden bajarse el paquete de Debian libmono-system-data2.0-cil correspondiente a la versión 1.2.6 de Mono y sobreeescribir ese archivo, que se ubica en /usr/lib/mono/gac/System.Data/2.0.0.0__b77a5c561934e089/. Reporté el problema en Ubuntu, así que quizá lo actualicen dentro de poco.
Con esto podremos utilizar SQLite con NHibernate, bajo Mono, con un binding actualizado.
Autor : Milton Pividori
FUENTE DEL ARTICULO : http://www.miltonpividori.com.ar/2007/12/30/mono-nhibernate-sqlite/
Publicado por
Gerard
en
7:40
Etiquetas: SQLite y Mono .Net
SQLite y Gambas2
domingo, 2 de noviembre de 2008
Gambas es otro de los tantos hacks recursivos que se usan, en si el significado es "Gambas Almost Means Basic", pensado como herramienta RAD y con Basic como lenguaje base, pero mejorado, vemos que tambien es multiprosito, en esta ocasión vamos a ver como hacer una conexión a una base de datos SQLite desde Gambas2.
Lo primero que debemos tener disponible para trabajar, ademas de SQLite, es Gambas2, en Debian y derivados:
#apt-get install gambas2
la parte mas importante esta en saber cuales son las herramientas que nos provee el languaje, y los datos de conexión de almacenan en un solo botón, el codigo es el siguiente:
'Instanciamos un objeto de clase ConnectionA continuación capturas de la aplicacion terminada y en diseño.
PRIVATE $hConn AS Connection
'Boton de conexión a la base de datos
PUBLIC SUB btnConnect_Click()
DIM sName AS String
DIM hTable AS Table
TRY $hConn.Close
sName = txtName.Text
IF sName <> "" THEN
'Asignamos valores a las propiedades que vamos a usar
WITH $hConn
'Definimos el tipo de base de datos
.Type = "sqlite"
'Definimos el nombre del host
.Host = txtHost.Text
END WITH
'Asignamos el nombre de la conexion
$hConn.Name = sName
'Abrimos la conexion para poder trabajar
$hConn.Open
'Habilitamos los otros formularios
frmDatabase.Enabled = TRUE
frmRequest.Enabled = TRUE
btnConnect.Enabled = FALSE
btnClose.Enabled = TRUE
CATCH
Message.Error(DConv(Error.Text))
ENDIF
END
Publicado por
Marco Mansilla
en
12:33
Etiquetas: SQLite y Gambas

