Obtener nombre de tablas de una DB SQLite [SOLUCIONADO]

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola a todos los usuarios del foro!

Estoy ayudando a mi buen amigo comprotodo con un APZ para unir varias bases de datos, pero quisiera que la aplicación fuera genérica, es decir, que pueda servirle a cualquiera pero para ello necesito algún Script, comando SQLite o lo que sea para obtener los nombres de las tablas que hay en una Base de Datos SQLite.

De ante mano, gracias

si no recuerdo mal tendría que ser un comando requiriendo el nombre de tabla, algo asi:
"select name from mysqlitebbdd where type = 'tabla' and name='latabla'"
esto es para una tabla, si quieres todos los nombres de tablas podrias crear una tabla virtual donde se metan los nombres de bbdd primero con las tipicas operaciones de sqlite ( en este caso obtener los nombres de la bbdd ) y luego desde esa tabla hacer un loop para con el comando que te he dicho antes y obtener los nombres de las tablas (partiendo del nombre de la bbdd obtenida) y guardarlo en un txt o en otra tabla virtual para recuperar esos datos de tabla, no se algo así como:
--suponiendo que has obtenido el nombre previamente de la bbdd de una tabla con sqlite
--quedaria por hacer los nombres de todas las tablas
tblBBDD= {}

                local sQuery = "";
		local tQuery = {};
 		SQLite.Open(_SourceFolder.."\\tubasededatos.db");

           for x, nombretabla in pairs (tblBBDD) do
           
		sQuery ="select name from "..nombretabla.." where type = 'tabla' and name='latabla'"; 
		tQuery = SQLite.QueryToTable(db, sQuery);
	  end
	
		SQLite.Finalize(db);
               tblNombresTablas= {}--creo otra tabla virtual para guardar los nombres de tablas
		if tQuery.Rows ~= 0 then

			for i=1,tQuery.Rows do

				mistablas = tQuery.Data[i]["latabla"];--nombre de la tabla a buscar

                                insert.table(tbNombresTablas, table count(tbNombresTablas)+1, mistablas);
                                textfile.writetotable ...
			end

No lo he testeado porque estoy fuera no se, pruebalo, esto es solo una idea de como podria hacerse

Otra forma mas sencilla es hacer esto:
db = SQLite.Open(pon aqui la ruta a tu base de datos);

tRespuesta = SQLite.QueryToTable(db, "select * from sqlite_master where type='table'")
for n, nameTables in pairs (tRespuesta.Data) do
	Dialog.Message("Resultados", tRespuesta.Data[n]["name"]);
        -- o lo que se ocurra para guardar los datos (ini, txt o un listbox o lo que te salga del nabo)
end
Suerte

Muchas gracias carsonzillo. Apenas veo tus respuestas voy a probar y después te cuento que paso.
Muchas gracias de nuevo.

El segundo que me pasaste funciona de maravilla, de nuevo Muchas gracias
Saludos Dow Sher :friends:

Me alegra que te haya servido. Lee el manual de sqlite porque ahi esta todo. Estaria bien que posteases un ejemplo de lo que estabas haciend asi la gente sabe que hacer cuando usen el buscador.

Un saludo!

carsonzillo escribió:Estaria bien que posteases un ejemplo de lo que estabas haciend asi la gente sabe que hacer cuando usen el buscador.
Si, estoy terminando un APZ para unir DB's cuando lo termine los subiré al foro.
Saludos Dow Sher :friends:

esta consulta sirve para obtener un listado de tablas

SELECT name FROM my_db.sqlite_master WHERE type='table';

Pues muchas gracias a Dow por el ejemplillo, estaba en la nube para unir 12mil encuestas de 6 db y formar una sola, me ha funcionado de maravilla me han salvado el rato de trabajo y en 3 minutitus he logrado unificar todo.

Gracias a Dow a el todo el credito y a Carzoncillo eres un genio amigo, me habia matado 1 noche intentando como hacerlo y el resultado fue lo mas simple pero efectivo.


A todos muchas gracias ( Dow Y Carsoncillo) un abarzote !