Ayuda urgente: Campos Number
Muy buenas,
Tengo un problema al traerme n煤meros de Oracle y realizar operaciones con ellos. Si tengo en una tabla 2 campos NUMBER y los consulto con un rercorset, al intentar sumarlos despu茅s me da un error de tipo:
Dim a, b, res
'HAGO LA CONSULTA DE LA BASE DE DATOS
cadConexion = "Provider=OraOLEDB.Oracle.1;Password=ademanda_owner;" _
& "Persist Security Info=False;User ID=ademanda_owner;Data Source=ademanda"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open cadConexion
Set rs = Server.CreateObject("ADODB.Recordset")
'SQL = "SELECT A, B from TABLA"
rs.Open SQL, conn,3,3
a = Rs.Fields(0)
b = Rs.Fields(1)
res = a + b
Tipo de error:
Error de Microsoft VBScript en tiempo de ejecuci贸n (0x800A000D)
No coinciden los tipos
He probado tambi茅n conectarme con el proveedor de Microsoft en vez de el de Oracle y tampoco funciona. Tambi茅n he probado poner los campos INTEGER en vez de NUMBER y tampoco. De la 煤nica forma que me ha funcionada ha sido forzando los tipos con la funci贸n CLng():
res = CLng(a) + CLng(b)
Pero esto no me vale, ya que estoy migrando una aplicaci贸n con much铆simas p谩ginas.
Espero vuestra ayuda, muchas gracias de antemano. Saludos,
Tengo un problema al traerme n煤meros de Oracle y realizar operaciones con ellos. Si tengo en una tabla 2 campos NUMBER y los consulto con un rercorset, al intentar sumarlos despu茅s me da un error de tipo:
Dim a, b, res
'HAGO LA CONSULTA DE LA BASE DE DATOS
cadConexion = "Provider=OraOLEDB.Oracle.1;Password=ademanda_owner;" _
& "Persist Security Info=False;User ID=ademanda_owner;Data Source=ademanda"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open cadConexion
Set rs = Server.CreateObject("ADODB.Recordset")
'SQL = "SELECT A, B from TABLA"
rs.Open SQL, conn,3,3
a = Rs.Fields(0)
b = Rs.Fields(1)
res = a + b
Tipo de error:
Error de Microsoft VBScript en tiempo de ejecuci贸n (0x800A000D)
No coinciden los tipos
He probado tambi茅n conectarme con el proveedor de Microsoft en vez de el de Oracle y tampoco funciona. Tambi茅n he probado poner los campos INTEGER en vez de NUMBER y tampoco. De la 煤nica forma que me ha funcionada ha sido forzando los tipos con la funci贸n CLng():
res = CLng(a) + CLng(b)
Pero esto no me vale, ya que estoy migrando una aplicaci贸n con much铆simas p谩ginas.
Espero vuestra ayuda, muchas gracias de antemano. Saludos,
Prueba a indicar el tipo en las variables que defines:
Dim a as long
Dim b as long
dim res as long
Dim a as long
Dim b as long
dim res as long
Hola,
El c贸digo que he mostrado se encuentra dentro de una p谩gina ASP, por lo que todas las variables son de tipo Variant.
Gracias de todas formas
El c贸digo que he mostrado se encuentra dentro de una p谩gina ASP, por lo que todas las variables son de tipo Variant.
Gracias de todas formas
Pues hasta donde conozco de ASP tienes que utilizar algo como CLng o Cint, etc. para poder hacer operaciones aritmeticas con los datos de un query.
Como bien lo dijiste el tipo de datos que se utiliza el Variant, lo cual significa que en tiempo de ejecuci贸n define el tipo de dato real, y por defaul utiliza tipo caracter, para poder definir cualquier otro tipo lo tienes que especificar por medio de la funcion que tu mismo indicaste.
Como bien lo dijiste el tipo de datos que se utiliza el Variant, lo cual significa que en tiempo de ejecuci贸n define el tipo de dato real, y por defaul utiliza tipo caracter, para poder definir cualquier otro tipo lo tienes que especificar por medio de la funcion que tu mismo indicaste.
