Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2005
daynel daynel is offline
Registrado
 
Registrado: abr 2005
Posts: 1
Poder: 0
daynel Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 14-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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:

Código SQL [-]
 SELECT  * FROM sysobjects WHERE   (name = 'Moneda')

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.

Código SQL [-]
 SELECT   * FROM  syscolumns WHERE  (id = 9876)

É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

Código SQL [-]
 SELECT  * FROM  systypes

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:

Código SQL [-]
 SELECT     syscolumns.name AS COL_NAME, systypes.name AS TYPE_NAME, *
 FROM         syscolumns INNER JOIN
                       sysobjects ON syscolumns.id = sysobjects.id INNER JOIN
                       systypes ON systypes.xtype = syscolumns.xtype
 WHERE     (sysobjects.name = 'Moneda') AND (systypes.name <> 'sysname')

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.
Responder Con Cita
  #3  
Antiguo 15-04-2005
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 21
LucianoRey Va por buen camino
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;
aunque no se si esto soporte todos los tipos que tengas en tu base de datos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:31:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi