¿Como comprobar que la base de datos abierta es correcta?

Buenas, he realizado una pequeña aplicación que crea una base de datos sqlite en la ruta que yo quiero. Luego he logrado abrir la base de datos y trabajar con ella metiendo y sacando datos de la misma. La base de datos que abro la pongo en una propiedad llamada selectedDataBase en App (App.selectedDataBase) ya que trabajo con varias ventanas.
Pero haciendo pruebas, se me ocurrió abrir una base de datos que no tiene la misma estructura que las que creo con esta aplicación. Por supuesto, abrirla la abre, pero si me voy a la ventana para introducir datos e intento guardar algún registro nuevo, lógicamente da error, como era de esperar.
Mi pregunta es ¿como puedo comprobar a la hora de abrir la base de datos, que sea valida?
Se me había ocurrido hacer una comprobación al abrir la base de datos donde verifique la estructura de la misma. Pero no se me ocurre como hacerlo. ¿Como puedo obtener los nombres de las tablas de la base de datos y las columnas de cada una de ellas? La idea es usar algúna condición if para, si una vez abierta la base de datos, no tiene la estructura correcta, la cierre y muestre un mensaje indicando que no es valida.
Gracias de antemano, cualquier ayuda será agradecida. No soy buen programador, logro hacer algunas cosas, pero cuando me atasco, suele costarme bastante salir. He intentado usar IA para generar algunos códigos que me den ideas, pero suele fallar mucho.

Esto puede servir:

SELECT 
    name
FROM 
    sqlite_schema
WHERE 
    type ='table' AND 
    name NOT LIKE 'sqlite_%';

trata con:

select name from pragma_table_info('your_table');

Para fácil, yo uso una tabla de versionado. Puedes poner ahi tanto el nombre del esquema, como la versión, al abrir compruebas que la base de datos corresponda a la aplicación y que tenga la versión correcta del esquema (estructura)

Genial, ha funcionado de maravilla. Muchisimas gracias por la ayuda. Gracias también a Ivan Tellez. Saludos.

1 Like