Foros del Web » Programando para Internet » ASP Clásico »

Les juro que no entiendo el error... agradecería mucho su ayuda

Estas en el tema de Les juro que no entiendo el error... agradecería mucho su ayuda en el foro de ASP Clásico en Foros del Web. Hola, espero que me puedan dar una mano, ya que vengo con este error hace bastante tiempo y no logro solucionarlo. Cuando el usuario confirma ...
  #1 (permalink)  
Antiguo 06/05/2005, 15:23
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Les juro que no entiendo el error... agradecería mucho su ayuda

Hola, espero que me puedan dar una mano, ya que vengo con este error hace bastante tiempo y no logro solucionarlo.
Cuando el usuario confirma un pedido mi pagina, ejecuto el siguiente codigo:

set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "Productos", session("conn"), 1, 3

for each Id in session("carro")
RS.Filter "Id = "&Id&""

SQL = "INSERT INTO Pedidos_Usu (IdNegocio, Cantidad, Precio) VALUES ("&IdNegocio&","&session("carro")(Id)&", "&RS("Precio")&")
session("conn").Execute(SQL)

SQL2 = "INSERT INTO Pedidos_Neg (IdNegocio, Cantidad, Precio) VALUES ("&IdNegocio&","&session("carro")(Id)&", "&RS("Precio")&")
session("conn").Execute(SQL2)

next

RS.Close
set RS = nothing

Bueno, obviamente este no es el codigo completo, son muchas lineas para leer, pero con esta parte del codigo me basta para decir que me pasa.
Cuando ejecuto el Insert a la base de datos me sale el siguiente error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] El número de valores de consulta y el número de campos de destino son diferentes.

No entiendo como es que me da ese error. Y lo mas raro, es que cuando no inserto la parte del RS("Precio") ahi me funciona correctamente... alguien me puede dar una mano con esto?, me ahorrarian mucha plata en las aspirinas que estoy tomando para el dolor de cabeza!. Gracias de antemano y saludos.
  #2 (permalink)  
Antiguo 06/05/2005, 15:33
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
haz un
response.write sql&"<br>"&sql2
response.end
y pega aqui la salida
  #3 (permalink)  
Antiguo 06/05/2005, 16:00
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Encontre el error, ahora no se como solucionarlo. El tema esta en el tipo de datos me parece. Cuando en el carro de compras ingreso un numero que es por ejemplo 33,60 me da error, pero cuando inserto un numero entero por ejemplo 11, funciona correctamente. Por que será?.
  #4 (permalink)  
Antiguo 06/05/2005, 16:01
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
por favor, quieres hacer lo que te he dicho antes?
  #5 (permalink)  
Antiguo 06/05/2005, 16:07
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
si, lo hice... pero me salta el error, no me da ninguna salida mas que el tipo de error y la descripcion del error, en cambio cuando inserto un numero entero si me da la salida del response.write, como puedo hacer?
  #6 (permalink)  
Antiguo 06/05/2005, 16:09
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
adonde tendria que colocar esas lineas que me pasaste para que no me salte el error antes?
  #7 (permalink)  
Antiguo 06/05/2005, 16:12
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
esta es la salida Trasgukabi:

INSERT INTO Pedidos (IdNegocio, Cantidad, Producto, Dia, Hora, Despachado, Comentado, IdProducto, NombreNeg, Precio) VALUES (1,1,'Pentium IV 2.4 GHZ con parlantes, teclado y mouse','06/05/2005','19:16:14','no','no',8,'Silicon Chart',1730,78)

El error esta en que me toma como dos valores distintos, es decir, 1730 y 78... como puedo hacer para solucionarlo?. Mil gracias! porque ahora aunque sea se por donde buscarlo. Saludos y disculpa mi ignorancia.
  #8 (permalink)  
Antiguo 06/05/2005, 16:17
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
A lo mejor mnodificando tu LCID, busca un formato en el que los decimales los tome con ".", busca en este mismo foro, hay varios ejemplos.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 06/05/2005, 16:27
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
ok.

El error es mas que claro, los parametros o valores los pasas divididos por ","

y ahi entonces le estas pasando el valos con una , , lo cual interpeta como que termina un parametro y empieza otro.

Cuando mandes ese valor haz esto:

SQL = "INSERT INTO Pedidos_Usu (IdNegocio, Cantidad, Precio) VALUES ("&IdNegocio&","&session("carro")(Id)&", "&Cdbl(RS("Precio"))&")
session("conn").Execute(SQL)

Tal vez asi se arregle, debes validar que todos tus datos pasan con los valores del tipo exacto.

Suerte!!
  #10 (permalink)  
Antiguo 06/05/2005, 17:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Pude solucionar el problema, haciendo un Replace, reemplazo la coma por un punto y ahi funciona bien. Gracias por la ayuda que me dieron. Saludos!.
  #11 (permalink)  
Antiguo 06/05/2005, 17:13
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Disculpa

Con Cdbl no funciona ???
  #12 (permalink)  
Antiguo 06/05/2005, 17:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
no, no me funciono con CDbl... raro no?, te parece que esta bien como lo hice o tendría que buscar otra forma?
  #13 (permalink)  
Antiguo 06/05/2005, 17:22
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Humm...

La verdad yo buscaria otra forma, no es logico mandarle a la base de datos un dato tipo STR cuando en realidad es un FLOAT, pero si te funciono pues bueno, tambien puedes probar las configuracion de tu servidor, como mencionaban arroba del LCID.

Suerte!!
  #14 (permalink)  
Antiguo 06/05/2005, 17:26
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
No creo que el problema sea el tipo de dato, tanto como la configuración de idioma del servidor, seguramente está en alguna configuración que separa los decimales por "," es mas prueba hacer algo así

variable = 10.52

Response.Write cdbl(variable) y observa el resultado
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 16:08.