Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Necesito saber el tipo de dato de un campo

Estas en el tema de Necesito saber el tipo de dato de un campo en el foro de Bases de Datos General en Foros del Web. Necesito saber el tipo de dato de un campo o columna de una tabla determinada... Estoy trabajando con access 2003 y visual basic 6.0. por ...
  #1 (permalink)  
Antiguo 14/05/2007, 01:09
 
Fecha de Ingreso: abril-2006
Ubicación: Talcahuano-Chile
Mensajes: 50
Antigüedad: 18 años, 6 meses
Puntos: 0
Necesito saber el tipo de dato de un campo

Necesito saber el tipo de dato de un campo o columna de una tabla determinada...

Estoy trabajando con access 2003 y visual basic 6.0.

por ultimo si es que hay una consulta SQL para poder hacer eso...

de antemano muchas gracias
  #2 (permalink)  
Antiguo 14/05/2007, 02:32
 
Fecha de Ingreso: abril-2006
Ubicación: Talcahuano-Chile
Mensajes: 50
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Necesito saber el tipo de dato de un campo

Encontré la solucion con un controldata en Visual Basic

si creamos un objeto de tipo Data

recuperamos el tipo de dato de esta forma

(si el controldata se llama data1)

Data1.RecordSet.fields(i).type

Donde i=a la posicion del campo

devuelve un numero

pero aka encontre un procedimiento
Código:
Private Function tipoToString(ByVal elTipo As DataTypeEnum, _
                              Optional ByVal ConTipo As Boolean = False) As String
    ' Devuelve una cadena según el tipo de datos                    (05/Nov/00)
    Dim s As String
    '
    Select Case elTipo
    Case dbBigInt
        s = "dbBigInt"
    Case dbBinary
        s = "dbBinary"
    Case dbBoolean
        s = "dbBoolean"
    Case dbByte
        s = "dbByte"
    Case dbChar
        s = "dbChar"
    Case dbCurrency
        s = "dbCurrency"
    Case dbDate
        s = "dbDate"
    Case dbDecimal
        s = "dbDecimal"
    Case dbDouble
        s = "dbDouble"
    Case dbFloat
        s = "dbFloat"
    Case dbGUID
        s = "dbGUID"
    Case dbInteger
        s = "dbInteger"
    Case dbLong
        s = "dbLong"
    Case dbLongBinary
        s = "dbLongBinary"
    Case dbMemo
        s = "dbMemo"
    Case dbNumeric
        s = "dbNumeric"
    Case dbSingle
        s = "dbSingle"
    Case dbText
        s = "dbText"
    Case dbTime
        s = "dbTime"
    Case dbTimeStamp
        s = "dbTimeStamp"
    Case dbVarBinary
        s = "dbVarBinary"
    Case Else
        'If ConTipo Then
        '    s = "Tipo desconocido"
        'Else
            s = "dbMemo"
        'End If
    End Select

ojalá les sirva
  #3 (permalink)  
Antiguo 14/05/2007, 07:05
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: Necesito saber el tipo de dato de un campo

No necesitas el control data.
El objeto fields pertenece al recordset. Tan solo con abrir el recordset puedes hacerlo... (Te lo digo porque si necesitas hacerlo en un método fuera de un formulario no tendrás el control data y tendrás que tratar con el Recordset...)
__________________
Kelpie
  #4 (permalink)  
Antiguo 16/05/2007, 17:39
 
Fecha de Ingreso: abril-2006
Ubicación: Talcahuano-Chile
Mensajes: 50
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Necesito saber el tipo de dato de un campo

Gracias kelpie......

lo intentaré de esa forma

y te cuento como me fue
  #5 (permalink)  
Antiguo 25/05/2007, 02:03
 
Fecha de Ingreso: mayo-2007
Mensajes: 1
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Necesito saber el tipo de dato de un campo

Ola, para saber el tipo de campo yo hago lo siguiente:
Teniendo un RecordSet rs por ejemplo..
Utilizas "rs.Fields(i).Type"
donde i es el numero del campo del recordset,tb podrias poner el nombre,
por ejemplo
rs.Fields("nombreCampo").Type

Esto te devuelve un entero que se corresponde al tipo de dato que es ese campo

el tipo 10 es un varchar

Los demas no los recuerdo bien, tendrias que investigarlos

Espero que te sea de ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.