SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: cristy en Jueves 19 de Diciembre de 2002, 23:38
-
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...:(
-
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 (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
-
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
:)