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

Error En Insert Into Y Update

Estas en el tema de Error En Insert Into Y Update en el foro de ASP Clásico en Foros del Web. TENGO UN PROBLEMA TRABAJO CON ASP, EN UN SERVIDOR LOCAL CUANDO CONSULTAS Y REDIRECCIONO, Y TRABAJO CON ALGUNOS OTROS ARGUMENTOS DE ASP, TRABAJA MUY BIEN, ...
  #1 (permalink)  
Antiguo 19/03/2004, 16:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 13
Antigüedad: 21 años, 7 meses
Puntos: 0
Error En Insert Into Y Update

TENGO UN PROBLEMA TRABAJO CON ASP, EN UN SERVIDOR LOCAL

CUANDO CONSULTAS Y REDIRECCIONO, Y TRABAJO CON ALGUNOS OTROS ARGUMENTOS DE ASP, TRABAJA MUY BIEN, PERO CUANDO TRABAJO CON SQL, A ESEPCION DE "SELECT" SE TRUENA MI ASP, ME MARCA UN ERROR DONDE DICE ERROR DE SINTAXIS PERO HE BAJADO, BUSCADO EJEMPLOS DE ASP, Y ESTAN IGUALITOS AL MIO Y NO ENTIENDO P×OR QUE NO ME JALA EXISTE OTRA FORMA DE PODER INSERTAR NUEVO REGISTROS Y DE ACTUALIZARLOS, ME SUPER URGE YA QUE TENGOP QUE MONTAR MI SITIO EN MENOS DE UNA SEMANA Y ES LO UNICO QUE ME FALTA OJALA Y ALGUIEN ME AYUDE TRABAJO CON ACCESS 2000

ESTE ES MI CODIGO PARA INSERTAR CHEQUENLO.

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("Licitaciones.mdb")

Set RS = oConn.Execute ("SELECT * FROM Licitacion_Invitacion WHERE No = '" + Request.Form("txtNo") + "'")

if not (RS.EOF) then
Response.Write("Ya existe una Licitacion con este numero,
verifique que no se este repitiendo.")
else
Set RS_I = oConn.Execute ( " INSERT INTO Licitacion_Invitacion
(No, Descripcion, Año, Tipo)
VALUES ('" + Request.Form("txtNo") + "', '" + Request.Form
("txtDesc") + "', '" + Request.Form("txtAño") + "', '" +
Request.Form("txtTipo") + "')" )
Rs_Q.Open RS_I, oConn
Response.Write("Se ha agregado el registro con exito.")
end if
%>



Y ESTE ES EL ERROR QUE ME MARCA


Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis en la instrucción INSERT INTO.
/asp/Licitaciones/Validar_Nueva_Lici.asp, línea 22
  #2 (permalink)  
Antiguo 19/03/2004, 17:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Distrito Federal
Mensajes: 225
Antigüedad: 21 años, 5 meses
Puntos: 0
Vi tu codigo y en teoria no hay error, solo que yo nunca he usado el + para concatenar.
Cambia los + por &

Prueba a ver si es eso

Saludos
  #3 (permalink)  
Antiguo 19/03/2004, 18:05
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 21 años, 2 meses
Puntos: 0
Pues estimado enriquer, yo a diferencia de Ysdragil sí ví varios errores.
[list=1][*]Estás asignando una consulta de actualización a un objeto Recordset de solo lectura. Para ejecutar una consulta de actualización no le tenés que asignar su resultado a nada, simplemente tenés que llamar el método Execute del objeto Connection.[*]Tu consulta INSERT está escrita en varias líneas sin utilizar el carácter de continuación de línea, o sea _, eso en asp no se puede hacer.[*]En la línea siguiente en la que ejecutás esa consulta estás tratando de abrirla (otra vez???) con un Recordset de solo lectura. Imposible que insertes nada en ninguna base de datos de esta manera[/list=1]

Para que te funcione tu código te recomiendo que lo hagas de la siguiente manera:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("Licitaciones.mdb")

Set RS = oConn.Execute ("SELECT * FROM Licitacion_Invitacion WHERE No = '" + Request.Form("txtNo") + "'")

if not (RS.EOF) then
Response.Write("Ya existe una Licitacion con este numero, verifique que no se este repitiendo.")
else
oConn.Execute ( "INSERT INTO Licitacion_Invitacion (No, Descripcion, Año, Tipo) VALUES ('" + Request.Form("txtNo") + "', '" + Request.Form("txtDesc") + "', '" + Request.Form("txtAño") + "', '" + Request.Form("txtTipo") + "')" )
Response.Write("Se ha agregado el registro con exito.")
end if
%>

Esto debería funcionar si todos los campos son de tipo texto, en caso que haya algún campo que sea de tipo fecha o numérico habría que cambiar algunas comillas de la consulta, pero solamente eso.
Probalo y después me contás si te funcionó.

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 14:26.