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

-2147217913 = Data type mismatch in criteria expression.

Estas en el tema de -2147217913 = Data type mismatch in criteria expression. en el foro de ASP Clásico en Foros del Web. Buenas. Tengo un carrito de la compra programado en asp y cuando intento actualizar unos datos de la bd, me fa el siguiente error. -2147217913 ...
  #1 (permalink)  
Antiguo 03/07/2008, 00:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 6 meses
Puntos: 0
-2147217913 = Data type mismatch in criteria expression.

Buenas.

Tengo un carrito de la compra programado en asp y cuando intento actualizar unos datos de la bd, me fa el siguiente error.

-2147217913 = Data type mismatch in criteria expression.

Que puede ser...



<% if session("autorizacion")<>1 then
response.redirect "login.asp"
end if%>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Visualización de datos enviados por formulario </title>
</head>

<body background="images/fondogris.gif">
<!--#include file="cabecera.inc"-->
<!--#include file="config.asp"-->

<%
on error resume next
TABLA=request.form("ntabla")
set ra=createobject("ADODB.Recordset")
ra.CursorType = 1
ra.LockType = 3
tabla=ucase(request.form("ntabla"))
campoclave=ucase(request.form("campoclave"))
vcampoclave=ucase(request.form("vcampoclave"))

sqltxt="select * from "&tabla&" WHERE "&campoclave&"="&vcampoclave
'response.write sqltxt
Set oRS = cnn1.OpenSchema(4)
set ra=createobject("ADODB.Recordset")

ra.open sqltxt,cnn1
sqltxt="UPDATE "&TABLA&" SET "
sqltxt=sqltxt &ra.Fields(1).Name&"='"&request.form(ra.Fields(1). Name)&"'"


For I = 2 To ra.Fields.Count - 1
'if request.form(ra.Fields(I).Name) <>"" then

'hacer distincion entre numericos para quitar comillas
oRs.movefirst
do while not oRs.EOF
if ucase(ors("TABLE_NAME"))=ucase(tabla) and ucase(ors("COLUMN_NAME"))= ucase(ra.Fields(I).Name) then
if ors("DATA_TYPE")=3 or ors("DATA_TYPE")=11 or ors("DATA_TYPE")=131 then
if request.form(ra.Fields(I).Name)="" then
numero=0
sqltxt=sqltxt &", "&ra.Fields(I).Name&"=0"
else
sqltxt=sqltxt &", "&ra.Fields(I).Name&"="&request.form(ra.Fields(I). Name)
end if
else
if ors("DATA_TYPE")=135 then 'fecha
if request.form(ra.Fields(I).Name)="" then
'fecha="12/31/2999"
'sqltxt=sqltxt &", "&ra.Fields(I).Name&"=#"&fecha&"#"
sqltxt=sqltxt &", "&ra.Fields(I).Name&"=NULL"
else
sqltxt=sqltxt &", "&ra.Fields(I).Name&"=#"&request.form(ra.Fields(I) .Name)&"#"
end if
else
sqltxt=sqltxt &", "&ra.Fields(I).Name&"='"&request.form(ra.Fields(I) .Name)&"'"
end if
end if
end if
oRs.movenext
loop
'end if
next

sqltxt=sqltxt&" WHERE "&CAMPOCLAVE&"="&VCAMPOCLAVE
ra.close
'response.write sqltxt
response.flush
cnn1.execute sqltxt
'ra.update

If cnn1.Errors.Count > 0 then%>
<p>
<div align="center">
<center>
<table border="1" width="80%" bordercolor="#666666">
<tr>
<td width="100%" bgcolor="#d24ab8">
<p align="center"><font color="#FFFFFF">Error en modificacion del registro</font></td>
</tr>
<tr><td width="100%" align="center">
<%
For each error in cnn1.errors
Response.write Error.Number & " = "& Error.Description &"<br>"
next%> &nbsp;</td>
</tr>
<tr>
<td width="100%" bgcolor="#d24ab8">
<p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Compruebe que todos los datos introducidos son correctos
</a></font></b></td>
</tr>
</table>
</center>
</div>
<hr>
<div align="center"><center>

<table border="1" width="44%">
<tr>
<td width="100%"><p align="center"><a href="javascript:window.history.back()">Volver a la
pagina anterior</a></td>
</tr>
</table>

<%else%>
<p>
<div align="center">
<center>
<table border="1" width="80%" bordercolor="#666666">
<tr>
<td width="100%" bgcolor="#d24ab8" >
<p align="center"><font color="#FFFFFF">Modificacion de registro correcta</font></td>
</tr>

<tr>


<td width="50%" bgcolor="#FFFFFF" align="center">
<font color="#0000FF"><a href="vrs.asp?campoD=<%=campoclave%>&valorD=<%=vca mpoclave%>&tabla=<%=tabla%>">Comprobar modificación</a></font></td>
</tr>
</table>
</center>
</div>
<hr>

<%
end if
'ra.close
cnn1.close



%>

</center></div>
</body>
</html>


Ayuda ermanos.Grasias
  #2 (permalink)  
Antiguo 03/07/2008, 00:34
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: -2147217913 = Data type mismatch in criteria expression.

bueno, es mucho codigo el que has puesto, pero no especificaste que linea es la del error, logicamente sera en la consulta a la base de datos, pero podrias enfoncarte en eso...

una sugerencia cuando quieras poner tanto codigo seria, seleccionar todo tu codigo y encerrarlo entre el codigo PHPy resultaria en algo similar a esto
Código PHP:
codigo de la pagina 
y seria mas factible poder leer tu codigo



verifica si las variables de las consultas estan correctas, si ID es numerico, la consulta no debe llevar comillas simples
Cita:
SELECT ID FROM TABLA where ID = 12312
otra es que estas usando numeros en campos de texto, y no tiene las comillas, ejemplo:
Cita:
Select ID, detalle from tabla where detalle = 1234
esto produciria un error de compatibilidad, ya que estas buscando numerico en texto, por lo tanto la correccion seria:
Cita:
Select ID, detalle from tabla where detalle = '1234'
empieza por ese lado
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 19/02/2010, 16:23
 
Fecha de Ingreso: febrero-2010
Ubicación: df
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: -2147217913 = Data type mismatch in criteria expression.

gracias por el tip lelva varios dias con el mismo error y ya lo solucione
  #4 (permalink)  
Antiguo 20/02/2010, 11:03
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 11 meses
Puntos: 41
Respuesta: -2147217913 = Data type mismatch in criteria expression.

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
una sugerencia cuando quieras poner tanto codigo seria, seleccionar todo tu codigo y encerrarlo entre el codigo PHPy resultaria en algo similar a esto
Código PHP:
codigo de la pagina 
y seria mas factible poder leer tu codigo
Mejor encerrar el codigo entre codigo ASP...

Por que no nos dices en que linea te da el error?

Deberias quitar on error resume next ya que estas ignorando los errores...

Saludos, Jose
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
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:38.