19.3.09

Mi primer experimento con Access y SQLite usando ODBC

He bajado e instalado en Windows XP el controlador ODBC para SQLite de Ch-Werner, con el objetivo de usar a Access 2003 como cliente de datos para SQLite. Nada más para experimentar.

La instalación fue sencilla, consistió en ejecutar el archivo descargado, todo muy tradicional.

Después, preparé un origen de datos ODBC apuntando al archivo que elaboré cuando escribí la entrada del blog titulada "SQLite 3, creando una sencilla base de datos desde la línea de comando".






En un archivo .mdb en blanco, vinculé la única tabla, sitios_web, de mi archivo SQLite sin problemas. Se puede abrir, usar en consultas y como fuente para reportes.



Luego, hice un formulario con el asistente para formularios de Access, usando como origen de datos la tabla vinculada de SQLite.

Pude capturar datos, pero hay un incoveniente, igual que con MySQL + ODBC, cuando se guarda un registro nuevo, aparece el temible texto #Eliminado en los controles del formulario.



El nuevo registro se guarda bien, pero Access no consigue regresar los datos recién guardados hasta después de que el formulario se cierra y se abre de nuevo. Según la información que he podido encontrar en la red, es una anomalía de Access con ODBC que viene desde la versión 2.0 y que es motivada por el diseño propio del motor de base de datos Microsoft Jet. 

Se me ocurren modos de darle la vuelta al incómodo mensaje #Eliminado, pero requieren su buena labor. Sigo buscando en la red por si hay soluciones más rápidas que las que se me ocurren. Ya lo comentaré más adelante.

Referencias:


4 comentarios:

Bitacoras.com dijo...

Información Bitacoras.com...

Valora en Bitacoras.com: He bajado e instalado en Windows XP el controlador ODBC para SQLite de Ch-Werner, con el objetivo de usar a Access 2003 como cliente de datos para SQLite. Nada más para experimentar. La instalación fue sencilla. Después, pre...

Carlos dijo...

Buenas tardes.

El truco es bien sencillo:

1. debe crear un campo tipo TIMESTAMP y colocarle valor por defecto current_timestamp
2. crear un campo autonumérico que sea la llave primaria (PK) de la tabla
3. volver a vincular la tabla.

Ya no debe volver a mostrar el mensaje de Eliminado.

Mario dijo...

Gracias Carlos,

Voy a aplicar tu consejo.

Osvaldo dijo...

Se puede utilizar Sqlite con bases DBF
Gracias

Publicar un comentario en la entrada