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

Error al insetar registro

Estas en el tema de Error al insetar registro en el foro de ASP Clásico en Foros del Web. • Tipo de error: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la cadena en la expresión ...
  #1 (permalink)  
Antiguo 16/11/2003, 00:14
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0
Error al insetar registro

• Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la cadena en la expresión de consulta ''5,)'.
/videoclub/newparte.asp, line 26
• Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
• Página:
POST 6 bytes to /videoclub/newparte.asp
• Datos de POST:
cojo=5
Newparte.asp
<%@ LANGUAGE = "VBScript" %>
<!-- #include file="db.asp" -->
<!-- #include file="configuracion.asp" -->
<!-- #include file="fxvideoclub.asp" -->
<%
estado=request.querystring("estado")
ediciontotal=false
if estado="save" then
cojo=request.form("cojo")
if cojo=null or not(isnumeric(cojo)) then
mensage=mensage & "<br>Necesitas introducir cojo."
end if
if mensage="" then
'insertar
sql="insert into partes (cojo"
if valid_sql(imagen)<>"" then
sql=sql & ",imagen"
SQLimagen=",'" & valid_sql(imagen) & "'"
end if
if valid_sql(notas)<>"" then
sql=sql & ",notas"
SQLnotas=",'" & valid_sql(notas) & "'"
end if
sql=sql & ") values ('" & valid_sql(cojo) & "," & SQLimagen & SQLnotas & ")"
db.execute(sql)
editcomplete=true
end if
end if
%>
<html>
<head>
<title>
</title>
<table>
<%
if not(idparte=null and idparte="" and not(isnumeric(idparte))) then
%>
<% end if %>
<p>
<td>
<% if ediciontotal then %>
<%= editarmensage %>
<% else %>
<form name="formulario" action="newparte.asp?estado=save&idparte=<%= idparte %>" method=post>
<%=mensage %>
<B>Cojo</B>
<input size=10 name="cojo" value="<%= cojo %>" maxlength=100>
<input type=submit>
</form>
<% end if %>
</body>
</html>
<%
db.close
set db=nothing
%>
Estos son los archivos incluidos
Db.asp
<!-- #include file="adovbs.inc" -->
<%
dim db
dim strConn
strConn = "vidconn"
Set db = Server.CreateObject("ADODB.Connection")
db.open strConn
%>
Fxvideoclub.asp
<%
Function valid_sql(s)
For i = 1 To Len(s)
If Mid(s, i, 1) = "'" Then
temp = temp + "'"
End If
temp = temp + Mid(s, i, 1)
Next
valid_sql=trim(temp)
End Function
%>


Hay un post que habla de fxvideoclub.asp en:
http://www.forosdelweb.com/showthrea...hlight=funcion

Última edición por sqa212; 16/11/2003 a las 02:20
  #2 (permalink)  
Antiguo 16/11/2003, 02:35
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Trata de imprimir la consulta y ver que es lo que trae, a lo mejor algun nombre de campo o quizás un caracter de más como una coma...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 16/11/2003, 03:18
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0

Lo siento U goldman pero no entiendo lo que me quieres decir, soy demsiado torpe:
sql="insert into partes (cojo"
if valid_sql(imagen)<>"" then
sql=sql & ",imagen"
SQLimagen=",'" & valid_sql(imagen) & "'"
end if
if valid_sql(notas)<>"" then
sql=sql & ",notas"
SQLnotas=",'" & valid_sql(notas) & "'"
end if
sql=sql & ") values ('" & valid_sql(cojo) & "," & SQLimagen & SQLnotas & ")"
db.execute(sql)

SI me pudieseis dar una direccion donde encontrar informacion sobre como pasar datos de esta forma, es que todo lo que veo por ahi de sql pasan datos no valores de variable.

Última edición por sqa212; 16/11/2003 a las 18:20
  #4 (permalink)  
Antiguo 16/11/2003, 19:00
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0

Todo lo que encuentro sobre sql es de sta forma:
http://www.w3schools.com/sql/sql_insert.asp
Y no es lo que busco.
Please ayuda, pruebo a poner y quitar , y " por todas partes pero sin un criterio logico porque lo desconosco

Os agradezco vuestra ayuda
  #5 (permalink)  
Antiguo 16/11/2003, 23:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Si, antes de ejecutar la consulta, imprímelay detén la secuencia de ejecución de comandos, ve que te arroja la impresión de esa consulta, de seguro debe ser una coma que se te fue o algo raro que estás haciendo, ya que la estás formando a partir de muchas variables...

response.write(sql)
Response.end

Postea el resutado aqui y vemos que podemos hacer...


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 17/11/2003, 05:37
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0
esto es lo que me devuelve tras hacer lo que me has dicho U Goldman.

insert into partes (cojo) values ('12,)
  #7 (permalink)  
Antiguo 17/11/2003, 06:29
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0
SOLUCION

Gracias U Goldman
Ya lo he solucionado, asi:
'insertar
sql="insert into partes (cojo"
sql=sql & ") values (" & valid_sql(cojo) & ")"
db.execute(sql)
editcomplete=true

Pero sigo sin entender la nomenclatura de como escribir la sql si alguien encuentra informacion al respecto diganme donde encontrarla.
Gracias de Nuevo

Última edición por sqa212; 17/11/2003 a las 06:37
  #8 (permalink)  
Antiguo 18/11/2003, 05:24
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0
Me ha surgido un nuevo problema: ( El problema esta donde esta este emoticicon )

<%@ LANGUAGE = "VBScript" %>
<!-- #include file="db.asp" -->
<!-- #include file="configuracion.asp" -->
<!-- #include file="fxvideoclub.asp" -->
<%
estado=request.querystring("estado")
ediciontotal=false
if estado="save" then
'Obtener los valores de la variable a traves del formulario
turno=request.form("turno")
'Comprobar los valores que he obtenido con el request form anterior
'punto A
if mensage="" then
'insertar
sql="insert into turnos (turno"
sql=sql & ") values (" & valid_sql(turno) & ")"
'Solucion U goldman para imprimir la sql
'response.write(sql)
'Response.end
'Fin solucion U goldman
db.execute(sql)
editcomplete=true
end if
end if
%>
<html>
<head>
<title>
</title>
<%
if not(idparte=null and idparte="" and not(isnumeric(idparte))) then
%>
<% end if %>
<p>
<td>
<% if ediciontotal then %>
<%= editarmensage %>
<% else %>
<%= mensage %>
<table width="100%" height="300" border="1">
<form name="formulario" action="turno.asp?estado=save" method=post>
<tr>
<td height="33" valign="top"> <table width="100%" height="33" border="1">
<tr>
<td align="center">&nbsp;
<font face="helvetica" size="3" color="<%= color4 %>">
<br>
<input type="radio" value="mañana" name="turno">
<B>Mañana</B>&nbsp;
<input type="radio" name="turno" value="tarde">
<B>Tarde</B>&nbsp;
</font>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="10" align="center" valign="top">&nbsp;
<br>
</form>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100" height="23">
<param name="BGCOLOR" value="">
<param name="movie" value="aceptar.swf">
<param name="quality" value="high">
<embed src="aceptar.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100" height="23" ></embed>
</object>
</tr>

</body>
</html>
<% end if %>
<%
db.close
set db=nothing
%>
</td>
</tr>
</body>
</html>

Si en lugar de tener turno formato texto en la base de datos tuviese formato numerico o moneda si se insertaria el registro en la base de datos, pero si turno tiene formato texto se produce el siguiente error:
Me refiero a poner esto para formato texto( Da lugar a un error)
<input type="radio" value="mañana" name="turno">
<B>Mañana</B>&nbsp;
<input type="radio" name="turno" value="tarde">
Me refiero a poner esto para formato formato numerico o moneda (NO Da lugar a un error)
<input type="radio" value="1" name="turno">
<B>Mañana</B>&nbsp;
<input type="radio" name="turno" value="2">
· [Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.
/videoclub/turno.asp, line 22
· Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
· Página:
POST 11 bytes to /videoclub/turno.asp
· Datos de POST:
turno=tarde
Si imprimo la sql como dice U goldman cuando tiene formato texto obtengo:

insert into turnos (turno) values (tarde)


Gracias de nuevo
  #9 (permalink)  
Antiguo 19/11/2003, 06:36
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 22 años
Puntos: 0
¿ Como seria para insertar una fecha?
Esto es la tira complicado :,)
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 00:43.