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

Problema simple al grabar en una BD

Estas en el tema de Problema simple al grabar en una BD en el foro de ASP Clásico en Foros del Web. Estoy haciendo mis primeras pruebas utilizando asp con access y tengo un problema que parece bastante simple pero que no he podido solucionar. Espero que ...
  #1 (permalink)  
Antiguo 02/01/2003, 14:05
 
Fecha de Ingreso: diciembre-2002
Mensajes: 57
Antigüedad: 21 años, 5 meses
Puntos: 0
Problema simple al grabar en una BD

Estoy haciendo mis primeras pruebas utilizando asp con access y tengo un problema que parece bastante simple pero que no he podido solucionar. Espero que me puedan ayudar, le explico.

Tengo el siguiente código (pongan atencióin en lo que esta en negrita):
<%
Dim conexion, registros, basedatos
basedatos = Server.MapPath("ejemplo.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"

c1="NNNN"
c2="EEEE"
c3="UUUU"

Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES (c1,c2,c3)")


Set registros = Nothing
conexion.Close
Set conexion = Nothing
%>

------------------------------
Las variables c1,c2,c3, las puse para simular que los datos vienen de otro lado
-------------------------------
y me arroja el siguente error:
Tipo de error:
Microsoft JET Database Engine (0x80040E10)
No se han especificado valores para algunos de los parámetros requeridos.
/graba.asp, line 19


---------------------------
la línea 19 es esta:
Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES (c1,c2,c3)")

Dice que hay valores sin especificar, pero si imprimo los valores de c1,c2 y c3 los muestra bien.
Y si reemplazo las variables c1,c2 y c3 por 'c1','c2' y 'c3' ,
osea:
Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES ('c1','c2','c3')")
graba bien en la BD. Claro que en vez de NNNN, EEEE y UUUU graba c1, c2 yc3, lo que es lógico.

Pero eso significa que el problema no esta ni en los campos ni en los valores de las variables.

¿cuál es el problema entonces?
AYUDA
__________________
Rudo007
  #2 (permalink)  
Antiguo 02/01/2003, 14:09
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
y q tal si concatenas

Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES ('"&c1&"','"&c2&"','"&c3&"')")


  #3 (permalink)  
Antiguo 02/01/2003, 14:11
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
El problema es que acá hay un error de sintaxis en la SQL:

Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES (c1,c2,c3)")


Y que acá estás diciendo que guarde literalmente c1, c2 y c3:

Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES ('c1','c2','c3')")



lo que tenés que hacer es concatenar las variables con la sentencia SQL:


Set registros = conexion.Execute("INSERT INTO Ejemplo (Nombre,Email,URL) VALUES (' " & c1 & " ',' " & c2 & " ',' " & c3 & " ')")


saludos
  #4 (permalink)  
Antiguo 02/01/2003, 17:13
 
Fecha de Ingreso: diciembre-2002
Mensajes: 57
Antigüedad: 21 años, 5 meses
Puntos: 0
Gracias!

Gracias a los dos, tienen toda la razón.
Es que trabajé mucho en php y me quedé con el chìp cambiado.

Ahora soy feliz
__________________
Rudo007
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 19:19.