Ver Mensaje Individual
  #1  
Antiguo 08-05-2010
MLROJO MLROJO is offline
Miembro
 
Registrado: jul 2004
Ubicación: Granada
Posts: 26
Reputación: 0
MLROJO Va por buen camino
Componentes ADO y propiedades generales de Base de datos

Buenas,

Me encuentro realizando un programa, a nivel personal, que me permita poder trabajar con varios gestores de bases de datos.

Este programa, por una parte consiste en permitir realizar selects, updates, inserts sobre tablas de una base de datos sobre la que previamente conectamos.

Por otra parte, muestra la estructura de la base de datos, mostrando tablas, vistas, stored procedures, usuarios propietarios de las tablas, campos clave de una tabla, etc..

Es en esta última donde me encuentro algo mas perdido.

Hasta el momento estoy usando:

Código Delphi [-]
adoConection.GetTableNames(ListBox1.items);


Para obtener las tablas y vistas de la base de datos sobre la que estoy conectado.

Código Delphi [-]
adoConection.GetProcedureNames(ListBox2.items);


Para obtener los stored procedure.

Luego uso una función que recorre la tabla que tenga en un TAdoTable y me muestra el tipo de cada campo y su longitud.

Me gustaria mejorar todo esto un poco y poder obtener el propietario de cada tabla que me devuelve ese GetTableNames y poder distinguir entre vistas y tablas, etc.

Posiblemente me equivoque y tal vez esté buscando una forma de obtener las "propiedades generales" de la base de datos de forma incorrecta, pero no conozco mas que esta forma o bien mediante consultas como:

Código SQL [-]
select * from sysobjects where xtype = 'U'


Que en este caso solo serviria para SQL Server y pretendo que la aplicación pueda trabajar con varios como Intersystems Caché, SQL Server.

En definitiva, creo que no estoy buscando un trozo de código que haga algo en concreto, sino ideas, indicaciones, consejos, pasos a seguir para explotar un poco mejor esa información que creo que se puede obtener toda desde los componentes TAdoConnection y TAdoTable o TAdoQuery.

Gracias de antemano,

Un saludo!
Responder Con Cita