Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   -2147217913 = Data type mismatch in criteria expression. (http://www.forosdelweb.com/f15/2147217913-data-type-mismatch-criteria-expression-602343/)

bui3 03/07/2008 00:27

-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

Shiryu_Libra 03/07/2008 00:34

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

:adios:

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'
:arriba: empieza por ese lado

jfernandope 19/02/2010 16:23

Respuesta: -2147217913 = Data type mismatch in criteria expression.
 
gracias por el tip lelva varios dias con el mismo error y ya lo solucione:aplauso:

Wasper 20/02/2010 11:03

Respuesta: -2147217913 = Data type mismatch in criteria expression.
 
Cita:

Iniciado por Shiryu_Libra (Mensaje 2474808)
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


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.