Autor Tema: [src] SQLite Recordset  (Leído 7242 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
[src] SQLite Recordset
« en: Septiembre 15, 2010, 01:12:28 am »
Bueno, aca traigo algo que tenia pendiente desde hace bastante. Se trata de una copia (no muy fiel) de un Recordset, pero en este caso para trabajar directamente sobre SQLite.
Cuenta con propiedades similares al Recordset de ADO, algunas de ellas son: BOF, EOF, Filter, Fields(), Index, RecordCount; pero tambien trae unas nuevas, tales son: ColIdToName, ColNameToId y RowId.
Tambien trae metodos (funciones) similares, como por ejemplo: AddNew, Delete, GetString, Move, MoveFirst, MoveLast, MoveNext, MovePrevious, ReQuery, Update; pero como para poder adaptarlo mejor, agregue un par mas: CleanUp, ColExists y OpenSQL.

Para comenzar, Fields no es un array de UDT como en el RST de ADO, sino que es una propiedad que devuelve un Variant con el valor. Si alguien usaba algun valor del UDT del rst de ADO, va a hacer que no le guste este modulo.
Las propiedades ColIdToName y ColNameToId se encargan de obtener ya sea el Index (o Id) desde el Nombre de la columna, o viceversa.
La propiedad RowId devuelve el identificador unico de esa fila, que puede ser o no una columna (rowid esta siempre presente como un PRIMARY KEY AUTOINC, aunque no se defina en ningun lado y ni siquiera aparezca en SELECT *). Esto es lo mas util para editar y eliminar registros; asi no hay que comparar con WHERE y poner todos los campos.
La funcion CleanUp "suelta" el query actual, osea que desbloquea la base de datos. Nominalmente se llama internamente, pero se puede usar para liberar el archivo por cualquier necesidad.
Para comprobar si una columna existe, se puede usar ColExists. Solamente hay que pasarle el nombre de la columna (opcionalmente si se busca con distincion entre minusculas y mayusculas) y obtener el resultado.
Y por ultimo, pero lo mas importante, la funcion OpenSQL. Esta funcion se encarga de inicializar el recordset. Los parametros son el nombre de la tabla, y el handle de la base de datos SQLite (que se obtiene con sqlite3_open).

La clase tiene un par de eventos, similares al recordset de ADO, pero que no funcionan igualitariamente. Igual, yo no los usaria.

Todo lo demas mencionado, funciona igual que el Recordset de ADO.

Arme un ejemplito asi nomas, donde se muestran las funciones del Recordset funcionando: Carga, filtrado, agregar registros, eliminar registros y modificar registros.
En fin, para bajar, click aca


Cualquier feedback, comenten!

Saludos
« última modificación: Junio 05, 2011, 03:50:09 am por YvanB »
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:[src] SQLite Recordset
« Respuesta #1 en: Septiembre 15, 2010, 09:54:58 am »
Coco, excelente aporte...! Muy bueno..! Lo dejo fijo para quien este metido con SQLite...! Gracias por aportar...!
Miguel Núñez.

fx700

  • Kilobyte
  • **
  • Mensajes: 95
  • Reputación: +4/-2
    • Ver Perfil
Re:[src] SQLite Recordset
« Respuesta #2 en: Diciembre 21, 2010, 08:12:11 pm »
Esta bueno el ejemplo voy a revisar el codigo aunque recien estoy probando el SQLite y no se que tal sera.

SKL

  • Administrador
  • Kilobyte
  • *****
  • Mensajes: 52
  • Reputación: +9/-2
  • GRIPE A
    • Ver Perfil
Re:[src] SQLite Recordset
« Respuesta #3 en: Enero 02, 2011, 11:56:37 pm »
SCAN hacete lago para que ande con Crystal Reports algun manualcito

wolf_kof

  • Visitante
Re:[src] SQLite Recordset
« Respuesta #4 en: Enero 03, 2011, 12:47:32 pm »
revisa el foro de Bases de Datos encontraras un ejemplo de crystal report.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:[src] SQLite Recordset
« Respuesta #5 en: Julio 03, 2011, 12:55:20 am »
Encotre este articulo interesante sobre las bondades de SQLite (aunque tiene 3 años no deja de ser bastante actual).
http://www.aplicacionesempresariales.com/sqlite-el-motor-de-base-de-datos-agil-y-robusto.html
Me encuentras en YAcosta.com