FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Obtener tipos de datos de campos en una BD.
Yo me conecto a la base de datos con el ADOConnection, y obtengo la informacion de cuantas tablas y campos tiene cada tabla, pero me hace falta saber el tipo de cada uno de los campos para despues poder realizar varias operaciones sobre ellos en dependencia del tipo.
|
#2
|
||||
|
||||
Abre tu Base de Datos de SQL Server y échale un vistazo a las tablas: sysobjects, syscolumns y sysTypes.
La primera te devolverá La lista de todos los objetos de la Base de Datos, entre ellos las tablas. Ejecuta la consulta, por ejemplo:
Eso te devolverá un registro que reperesenta la información de la tabla Moneda (por poner una). En ese registro hay un id (recuerdalo); Supongamos para el ejemplo que es el 9876. Ahora utilizando la tabla syscolumns puedes obtener todos las columnas de todas las tablas; Para saber las de la tabla Moneda utiliza el id.
Ésta consulta te devolverá todas las columnas de la tabla Moneda. Ahora nos fijamos en una columna llamada xType. Esa columna indica el tipo del dato y para saber cual es ytiliza la tabla SysTypes. Si ejecutas la consulta
Obtendrás los tipos correspondientes a los valores de la columna xtype de antes. Finalmente puedes obtener todo la info. con una sóla consulta como ésta:
Te devolverá todos los campos y sus tipos (a parte del resto de información de cada columna) para la tabla llamada Moneda.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Tipos de datos
Hola, como dices que usas AdoConnection, espero te pueda servir esto:
una vez que tengo en AdoDataSet1 asignada la tabla de la que quiero información Código:
for Contador:=0 to ADODataSet1.FieldCount - 1 do begin ADODataSet1.Fields.Fields[Contador].DisplayName; //nombre ADODataSet1.Fields.Fields[Contador].Size; //tamaño ADODataSet1.Fields.Fields[Contador].DataType; //tipo end; |
|
|
|