• Lunes 18 de Noviembre de 2024, 13:48

Autor Tema:  Re: Hola  (Leído 1378 veces)

cristy

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Hola
« en: Jueves 19 de Diciembre de 2002, 23:38 »
0
Alguien conoce alguna funcion para obtener el tipo de dato de un campo de un recorset ?  ¿ y a que tipo de datos correponde en visul  un number  de oracle?

 Gracias...:(

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Hola
« Respuesta #1 en: Viernes 20 de Diciembre de 2002, 09:35 »
0
Mira este código:

For i = 0 To Recordset.Fields.Count - 1
      tipo = Obtener_TipoDatos(Recordset.Fields(i).Type)
Next

La función que tengo yo para obtener que tipos de datos es en Sql Server es la siguiente:

Function Obtener_TipoDatos(campo As Integer) As String
    'Obtengo el tipo de datos del campo
    Select Case campo
        Case adBigInt
            Obtener_TipoDatos = "BigInt"
        Case adBinary
            Obtener_TipoDatos = "Binary"
        Case adBoolean
            Obtener_TipoDatos = "Boolean"
        Case adChar, adBSTR
            Obtener_TipoDatos = "Char"
        Case adCurrency
            Obtener_TipoDatos = "Currency"
        Case adDate
            Obtener_TipoDatos = "Date"
        Case adDBDate, adDBFileTime, adDBTime, adDBTimeStamp
            Obtener_TipoDatos = "SmallDateTime"
        Case adDecimal, adDouble
            Obtener_TipoDatos = "Double"
        Case adGUID
            Obtener_TipoDatos = "UniqueIdentifier"
        Case adIDispatch, adInteger
            Obtener_TipoDatos = "Int"
        Case adIUnknown, adLongVarBinary
            Obtener_TipoDatos = "Image"
        Case adLongVarChar
            Obtener_TipoDatos = "Text"
        Case adLongVarWChar
            Obtener_TipoDatos = "NText"
        Case adNumeric
            Obtener_TipoDatos = "Decimal Numeric"
        Case adPropVariant, adSingle
            Obtener_TipoDatos = "Real"
        Case adSmallInt
            Obtener_TipoDatos = "SmallInt"
        Case adTinyInt, adUnsignedBigInt, adUnsignedInt, adunsignedsamllint, adUnsignedTinyInt
            Obtener_TipoDatos = "TinyInt"
        Case adVarBinary
            Obtener_TipoDatos = "VarBinary"
        Case adVarChar
            Obtener_TipoDatos = "VarChar"
        Case adVariant
            Obtener_TipoDatos = "Sql_Variant"
        Case adVarWChar
            Obtener_TipoDatos = "NVarChar"
        Case adWChar
            Obtener_TipoDatos = "NChar"
    End Select
End Function

De todas formas en esta página puedes ver la correspondecia de los tipos de datos:

http://www.able-consulting.com/ADODataTypeEnum1.htm

Espero que te sirva de ayuda, si tienes alguna duda no dudes en consultarme y yo en la medida que pueda te ayudaré.

Saludos,
Roberto
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

cristy

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Hola
« Respuesta #2 en: Viernes 20 de Diciembre de 2002, 12:29 »
0
Hola Gracias por tu ayuda, pero queria hacerte otra consulta, te cuento
estoy actualizando una base de datos que esta en oracle, la actualizacion la  hago con  adodc, al dale los campo al nuevo registro me arroja el error  de tipo bueno octuve el tipo del campo con el cual tuve problemas  y es un number el problema es que tranforme a todos los  tipos posible y aun me envia el error les envio mi codigo por si encuentra el error muchas gracias


If Len(tabla) = 0 Then
    MsgBox ("Ingrese un Nombre de Tabla")
Else
If Len(BD_1) = 0 Then
 MsgBox ("Ingrese el Nombre de Archivo a Exportar")
Else
 filavar = 1
 coluvar = 0
    Ado_Tabla.UserName = st_login
    Ado_Tabla.Password = st_passw
    Ado_Tabla.RecordSource = UCase(tabla)
    Ado_Tabla.Refresh
   Do While filavar - 1 < grilla.Rows
      grilla.Row = filavar - 1
       Ado_Tabla.Recordset.AddNew
      Do While coluvar - 1 < grilla.Cols
        grilla.Col = coluvar
       ' On Error GoTo error2
       Typedato = (Ado_Tabla.Recordset.Fields(coluvar).Type)
       MsgBox Typedato
         If Typedato = "131" Then
             var = CDec(Trim(grilla.Text))
            Ado_Tabla.Recordset.Fields(coluvar) = var
          Else
            Ado_Tabla.Recordset.Fields(coluvar) = grilla.Text
         End If
        coluvar = coluvar + 1
     Loop
        Ado_Tabla.Recordset.Update
      coluvar = 1
     filavar = filavar + 1
  Loop
 End If
    do_Tabla.Recordset.Update
   primera = False
   MsgBox ("Proceso Terminado")
End If
    FormImportar.MousePointer = 0
   





:)