Buenas!.
Retomando un poco el tema de las base de datos ( mi asignatura pendiente ).
Y habiendo creado la base de datos del proyecto final para el curso de bases de datos
con sqlite. Quise intenta ver de una forma por ahora texto de ver todo el contenido
de la base de datos pero con Gambas.
Eso incluía:
- Las tablas
- Sus campos
- Los valores de los registros.
Y dije, bueno y si fuese para cualquier base de dato, algo más genérico y que valiese
para todas. A ver como lo hago.
Entonces comencé por la conexión , que funcionaba y luego el resultado, rompiéndome
la cabeza, que no me estaba devolviendo ningún resultado la consulta de selección y es que tenía
la base de datos repetida, una con solo la estructura y la otra con datos.
Digamos que construyo la base y para asegurarme de no perderla la guardo y modifico la copia,
que era la que tenía toda la información.
Código:
Private hConn As Connection
Public Sub MostrarTodo()
Dim HResul As Result
Dim HRsf As ResultField
Dim hTable As Table
Dim snomtabla As String
hConn = ModGestBase.ConectarConBase()
For Each hTable In hConn.Tables
If hTable.System Then Continue
HResul = ModGestBase.MostrarTabla(hTable.Name)
snomtabla = "Nombre de la tabla: " & hTable.Name
Print snomtabla
Print String(snomtabla.Len, "*")
'Mostrar cada campo y valor de este en cada uno de los resultados de la consulta
Do While HResul.Available
For Each HRsf In HResul.Fields 'Una colección
Print HRsf.Name & " - " & HResul[HRsf.Name]
Next
HResul.MoveNext
Print
Loop
Next
ModGestBase.CerrarConexion()
End
Con ResultFields y su propiedad Fields es una colección.
Así que teniendo la clave podemos obtener tanto el nombre del campo de la tabla como su valor.
Y dije, bueno y ¿ qué pasa con las tablas ?.
Al principio vi que se podía obtener con un array pero eso lleva a trabajar con indices
y curiosamente, encontré la misma solución.
La conexión tiene una propiedad llamada Tables. Definiendo un objeto de la clase Table,
podía recorrer toda la tabla de la base de datos en cuestión.
Y de esta forma pude ver la salida en la consola de Gambas.
Parte de la salida en la consola, de la tabla libros.
Cita:Nombre de la tabla: Libros
**************************
idLibro - 1
titulo - Soledades. Galerías. Otros poemas
genero - Poesía
autor - Antonio Machado
estado - Prestado
idLibro - 2
titulo - Divinas palabras
genero - TragiComedia
autor - Ramón Valle-Inclán
estado - Disponible
Lógicamente la tabla tiene cosas más complejas creadas en si misma, vistas, triggers y una transacción para controlar el tema de los prestamos.
Ahora lo que me surgen son otras dudas. Que plantearé en otro mensaje.
Saludos