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

Ayuda Insert en ASP

Estas en el tema de Ayuda Insert en ASP en el foro de ASP Clásico en Foros del Web. Al hacer un insert en sql me da este error: Cita: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][SQL Server Native Client 10.0][SQL ...
  #1 (permalink)  
Antiguo 21/12/2008, 16:17
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Ayuda Insert en ASP

Al hacer un insert en sql me da este error:

Cita:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][SQL Server Native Client 10.0][SQL Server]Error al convertir el tipo de datos varchar a float.

Este es el codigo:

Código:
set rs = Conn.Execute ("insert into [facturas] (num_factura,id_cliente,total,descuento,importe_final,iva,total_final,fecha_factura) values ('"&num_factura&"','"&id_cliente&"','"&total&"','"&descuento&"','"&importe_final&"','"&iva&"','"&total_final&"','"&fecha&"')")
En la tabla estos son los tipos de datos:

num_factura: int
id_cliente: int
total: float
descuento: float
importe_final: float
iva: float
total_final: float
fecha_facftura: date

¿Cuál es el error?

Última edición por Laika; 22/12/2008 a las 04:03
  #2 (permalink)  
Antiguo 22/12/2008, 06:04
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: Ayuda Insert en ASP

El error esta en que se esta intentando una variable VARCHAR en FLOAT.

haz lo siguiente.


Código PHP:
dim sql
sql 
="insert into [facturas] (num_factura,id_cliente,total,descuento,importe_final,iva,total_final,fecha_factura) values ('"&num_factura&"','"&id_cliente&"','"&total&"','"&descuento&"','"&importe_final&"','"&iva&"','"&total_final&"','"&fecha&"')"

response.write sql
response
.end
set rs 
Conn.Execute (sql

al hacer esto, se imprimira en la paltalla el STRING que se esta intentando ejecutar y veras cual es el error.

  #3 (permalink)  
Antiguo 28/12/2008, 16:22
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Hola,

Ya he visto el error pero ahora me lo da en el campo fecha. Este es el error:

Cita:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][SQL Server Native Client 10.0][SQL Server]Conflicto de tipos de operandos: int es incompatible con date

/iturritxo/tratar_guardar_factura.asp, line 28
La consulta queda asi:

Código:
insert into [facturas] (num_factura,id_cliente,total,descuento,importe_final,iva,total_final,fecha_factura) values (2,43,40,0,40,6.4,46.4,12/28/2008)
Y este es el codigo:

Código:
dim sql
sql ="insert into [facturas] (num_factura,id_cliente,total,descuento,importe_final,iva,total_final,fecha_factura) values ("&num_factura&","&id_cliente&","&total&","&descuento&","&importe_final&","&iva&","&total_final&","&fecha&")"

response.write sql
response.end
set rs = Conn.Execute (sql)

Última edición por Laika; 28/12/2008 a las 16:28
  #4 (permalink)  
Antiguo 28/12/2008, 19:33
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 6 meses
Puntos: 27
Respuesta: Ayuda Insert en ASP

mete la fecha entre comillas

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 29/12/2008, 02:14
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Pero ya está entre comillas:

"&fecha&" y me sale ese error.
  #6 (permalink)  
Antiguo 29/12/2008, 05:22
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: Ayuda Insert en ASP

Cita:
Iniciado por Laika Ver Mensaje
Pero ya está entre comillas:

"&fecha&" y me sale ese error.
se refierea las comillas simples.

asi

sql ="insert into [facturas] (num_factura,id_cliente,total,descuento,importe_fi nal,iva,total_final,fecha_factura) values ("&num_factura&","&id_cliente&","&total&","&descue nto&","&importe_final&","&iva&","&total_final&",'" &fecha&"')"

  #7 (permalink)  
Antiguo 29/12/2008, 06:47
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Ayuda Insert en ASP

Hola

Con permiso. Y si además le agrega las almohadillas mejor que mejor

'#"&fecha&"#'

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 29/12/2008, 07:11
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: Ayuda Insert en ASP

perdona la ignorancia, pero eso del # no lo habia visto nunca.
para que sirve?
  #9 (permalink)  
Antiguo 29/12/2008, 07:44
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Ahora si que no entiendo nada... he probado con las comillas simples y con y sin almohadillas y me sale el mismo error en los 2 casos:

Código:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][SQL Server Native Client 10.0][SQL Server]Error al convertir una cadena de caracteres en fecha y/u hora.

/iturritxo/tratar_guardar_factura.asp, line 28
Asi queda la consulta:

Código:
insert into [facturas] (num_factura,id_cliente,total,descuento,importe_final,iva,total_final,fecha_factura) values (2,43,120,12,108,17.28,125.28,'12/29/2008')
  #10 (permalink)  
Antiguo 29/12/2008, 08:12
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: Ayuda Insert en ASP

fijate en el formato en que el servidor de la BD guarda las fechas.
estas pasando una fecha en formato MM/DD/YYYY, osea en modo ingles.
si es que el servidor tiene un SO en español con formato DD/MM/YYYY, la BD tomara el 29 como mes y como no existe un mes 29, dara error.
  #11 (permalink)  
Antiguo 29/12/2008, 08:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Ayuda Insert en ASP

Hola

Cita:
Iniciado por Muzztein Ver Mensaje
perdona la ignorancia, pero eso del # no lo habia visto nunca.
para que sirve?
Por no leer todo el tema y dar por hecho que trabajaba en Access. De cualquier forma, Muzztein, aquí tienes una aclaración
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #12 (permalink)  
Antiguo 29/12/2008, 10:12
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: Ayuda Insert en ASP

aja, ahora veo.
nunca trabaje con access =P o si lo hice fue en la universidad hace millones de años
  #13 (permalink)  
Antiguo 29/12/2008, 15:35
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Trabajo en SQL Server 2008 y el formato de fechas es aaaa/mm/dd asi que ¿cómo puedo puedo hacerlo recogo la funcion date() en el otro formato?

Gracias
  #14 (permalink)  
Antiguo 29/12/2008, 16:03
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Aqui os dejo lo que he hecho para cambiar el formato de fecha que me devolvia la funcion date().

En lugar de usar date() he hecho lo siguiente, para adaptarlo al formato de la BD de Sql Server:

Código:
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
fecha = Anio&"-"& Mes&"-"&Dia
  #15 (permalink)  
Antiguo 09/01/2009, 15:14
Avatar de DonPampero  
Fecha de Ingreso: enero-2009
Mensajes: 27
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

flaquita si aun no lo corriges aqui esta la respuesta:

values ("&num_factura&","&id_cliente&","&total&","&descue nto&","&importe_final&","&iva&","&total_final&",#" &fecha&"#)"

numeros sin ''
caracteres con ''


saludos
  #16 (permalink)  
Antiguo 09/01/2009, 15:17
Avatar de DonPampero  
Fecha de Ingreso: enero-2009
Mensajes: 27
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

otra forma


values ("&num_factura&","&id_cliente&","&total&","&des cue nto&","&importe_final&","&iva&","&total_final&",#" &year(fecha)&"/"&month(fecha)&"/"&day(fecha) &"#)"

numeros sin ' '
caracteres con ' '


saludos
  #17 (permalink)  
Antiguo 26/10/2010, 15:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ayuda Insert en ASP

Cordial Saludo!
Por si alguien tiene el mismo problema y evitar hacer conversiones del formato fecha, dejemosle el trabajo al motor SQL Server pasando los datos del parametro como "GETDATE()"

Ejemplo
Insert into Tabla (CampoFecha) values ("GETDATE()")

Esto es para cuando se hacen las inserciones manualmente, pero en caso de hacerlo a traves de dataset tipado no hay ese problema.

Espero que le sirva.
  #18 (permalink)  
Antiguo 27/10/2010, 07:03
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ayuda Insert en ASP

Jorge77

Gracias por el aporte, aunque esta mal, el getdate() no va entre comillas ni apostrofes. Además la fecha en que se realiza la operación no siempre es la fecha que se quiere insertar como en el problema del usuario que abrió el post, la fecha de la factura puede ser cualquiera no la del día del insert, eso esta bien para un campo TimeStamp, pero si ese es el caso, mejor se coloca el getdate() desde el diseño como valor por default y se omite en el INSERT.

Pero por favor, no revivas temas antiguos.

Saludos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:15.