Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Obtener Informacion De Tablas Y Vistas.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Obtener Informacion De Tablas Y Vistas. 
 
Hola a todos.

Estaba tratando de obtener una lista de campos de una vista de una base de datos sqlite pero los métodos "tradicionales" no funcionan, es decir a la vista no la puedo tratar como tabla para hacer tabla.fields, así que explore otras posibilidades y logre obtener la dichosa lista de campos, pero creo que encontré una manera de hacerlo independiente del motor de bases de datos.
De momento lo probé solo con sqlite, pero si alguien que usa otro motor lo puede probar seria interesante saber que funciona.

Public Function ResFieldsList(conDB As Connection, strTable As String) As String[]

  Dim stxFields As New String[]
  Dim resFields As Result
  Dim frdField As ResultField

  stxFields.Clear

  resFields = conDB.Exec("select * from " & strTable)

  For Each frdField In resFields.Fields
    stxFields.Add(frdField.Name)
  Next

  Return stxFields

End
 


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Obtener Informacion De Tablas Y Vistas. 
 
Perfecto hay otras maneras según el motor de la db, pero esa es válida. Tan sólo piensa en el volumen de datos. Si strTable  tuviese un millón de registros, matarías moscas a cañonazos. Limita la cantidad de datos y ganarás en velocidad

resFields = conDB.Exec("select * from &1 limit 1", strTable)


te hace el trabajo más rápido.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Obtener Informacion De Tablas Y Vistas. 
 
shordi escribió: [Ver mensaje]
Perfecto hay otras maneras según el motor de la db, pero esa es válida. Tan sólo piensa en el volumen de datos. Si strTable  tuviese un millón de registros, matarías moscas a cañonazos. Limita la cantidad de datos y ganarás en velocidad
resFields = conDB.Exec("select * from &1 limit 1", strTable)

te hace el trabajo más rápido.

Gracias Shordi. He incluido tus mejoras SQL para que las funciones (agregue otra del tipo de dato del campo) quedarían así.
Public Function ResFieldsNames(conDB As Connection, strTable As String) As String[]

  Dim stxFieldsNames As New String[]
  Dim resFields As Result
  Dim frdField As ResultField

  stxFieldsNames.Clear

  resFields = conDB.Exec("select * from &1 limit 1", strTable)

  For Each frdField In resFields.Fields
    stxFieldsNames.Add(frdField.Name)
  Next

  Return stxFieldsNames

End

Public Function ResFieldsTypes(conDB As Connection, strTable As String) As String[]

  Dim stxFieldsTypes As New String[]
  Dim resFields As Result
  Dim frdField As ResultField

  stxFieldsTypes.Clear

  resFields = conDB.Exec("select * from &1 limit 1", strTable)

  For Each frdField In resFields.Fields
    stxFieldsTypes.Add(frdField.Type)
  Next

  Return stxFieldsTypes

End
 


Respecto al motor de bases de datos, es justamente el cuello de botella de los programas que los usan, porque cuando quieres escalar a otra plataforma algunas cosas de un motor no funcionan para otro.
Así que por lo pronto estoy tratando de hacer cosas "multi" motor de base de datos.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Obtener Informacion De Tablas Y Vistas. 
 
Citar:
Así que por lo pronto estoy tratando de hacer cosas "multi" motor de base de datos.

Esa es la gran ventaja de los objetos de acceso a las bases de datos de gambas. Si gambas te ofrece esa capacidad es muy buena idea el utilizarla.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Obtener Informacion Desde Internet alan General 1 Lunes, 07 Marzo 2011, 02:24 Ver último mensaje
shordi
No hay nuevos mensajes Como Mostrar En Un Reporte Informacion De ... Emibel Bases de Datos 7 Martes, 15 Abril 2014, 11:03 Ver último mensaje
shordi
No hay nuevos mensajes ¿Como Se Trabajan Las Vistas Desde El Edi... jsbsan Bases de Datos 1 Lunes, 02 Marzo 2015, 09:14 Ver último mensaje
shordi
No hay nuevos mensajes Obtener Lista De Tablas De Sqlite3 Postgre... tincho Bases de Datos 4 Domingo, 21 Febrero 2016, 14:01 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron