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

No coinciden los tipos de datos en la expresión de criterios.

Estas en el tema de No coinciden los tipos de datos en la expresión de criterios. en el foro de ASP Clásico en Foros del Web. a que se debe este error Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos ...
  #1 (permalink)  
Antiguo 19/11/2004, 08:50
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación No coinciden los tipos de datos en la expresión de criterios.

a que se debe este error Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.

/insertar1.asp, line 20
cual seria la solucion
este es mi programa
<html>
<head>
<title>insertar1.asp</title>
<%LANGUAJE="VBSCRIPT"%>
</head>
<body>
<%

nombre=Request.Form("nombre")
apellidopaterno=Request.Form("apellido paterno")
apellidomaterno=Request.Form("apellido materno")
telefono= Request.Form("telefono")
comentarios=Request.Form("comentarios")

Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base1.mdb")

sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"

set RS = oConn.Execute(sSQL)
%>
<h1><div align="center">Registro Insertado</div></h1>
<%
oConn.Close
%>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 19/11/2004, 08:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Prueba con un Response.Write sSQL o comenta el oConn.Execute para ver como se forma la sentencia SQL, si aún no ves el error, posteala y le echamos un vistazo.
  #3 (permalink)  
Antiguo 19/11/2004, 09:05
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
gracias por responder

Cita:
Iniciado por Myakire
Prueba con un Response.Write sSQL o comenta el oConn.Execute para ver como se forma la sentencia SQL, si aún no ves el error, posteala y le echamos un vistazo.

hola como te lo pondria mandar el programa para que lo puedas probar
  #4 (permalink)  
Antiguo 19/11/2004, 09:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
, jeje, me refería a que hicieras esto:
Código:
...
sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"

response.Write sSQL

' set RS = oConn.Execute(sSQL)
%>...
Una vez que hayas hecho eso, podrás ver la consulta que recibiría la BD, si después de ver dicha consulta no haz detectado el error, postea el resultado del response.write (o sea, la consulta) y le miramos todos en el foro.

  #5 (permalink)  
Antiguo 19/11/2004, 09:20
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
, jeje, me refería a que hicieras esto:
Código:
...
sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"

response.Write sSQL

' set RS = oConn.Execute(sSQL)
%>...
Una vez que hayas hecho eso, podrás ver la consulta que recibiría la BD, si después de ver dicha consulta no haz detectado el error, postea el resultado del response.write (o sea, la consulta) y le miramos todos en el foro.

salio esta respuesta

Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('qq','','','','')
Registro Insertado
  #6 (permalink)  
Antiguo 19/11/2004, 09:36
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, al ver que si se formo la consulta correctamente (5 campos, 5 valores). Revise por primera vez tu código y detecté lo siguiente:

Defines mal el lenguaje. La directiva para especificar el lenguaje con que se programará el ASP de la página es <%@LANGUAGE="VBSCRIPT" %>, ya que como lo tienes solo haz definido una variable con cierto valor, esta directiva debe ir al inicio de tu archivo.

Como es un Insert y esta instrucción no regresa un cursor, no debes asignar el resultado de la instrucción a nada. Cambia la línea a oConn.Execute(sSQL), nada mas.

Hay que eliminar por completo el objeto con oConn.close y set oConn=nothing.

Revisa lo tipos de datos. Que los cinco campos sean ......., text o verchar (¿Qué BD estas usando?).
  #7 (permalink)  
Antiguo 19/11/2004, 09:45
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
Bueno, al ver que si se formo la consulta correctamente (5 campos, 5 valores). Revise por primera vez tu código y detecté lo siguiente:

Defines mal el lenguaje. La directiva para especificar el lenguaje con que se programará el ASP de la página es <%@LANGUAGE="VBSCRIPT" %>, ya que como lo tienes solo haz definido una variable con cierto valor, esta directiva debe ir al inicio de tu archivo.

Como es un Insert y esta instrucción no regresa un cursor, no debes asignar el resultado de la instrucción a nada. Cambia la línea a oConn.Execute(sSQL), nada mas.

Hay que eliminar por completo el objeto con oConn.close y set oConn=nothing.

Revisa lo tipos de datos. Que los cinco campos sean ......., text o verchar (¿Qué BD estas usando?).

estoy usando access 2000, en que se diferencia Microsoft.Jet.OLEDB.4.0
con Microsoft Access Driver donde me puedo fijar la configuaracion de access
  #8 (permalink)  
Antiguo 19/11/2004, 09:56
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Veo que haz cambiado la pregunta, en estos casos lo ideal es colocar un nuevo post para tener mejor control sobre los mensajes. Pero antes de contestarte ¿revisaste los tipos de datos?

PD. La diferencia radica en que por el primero usas OLEDB y por el segundo usas ODBC, basicamente. Lo de fijar la configuración de Access.....pues no te entiendo.
  #9 (permalink)  
Antiguo 19/11/2004, 10:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
Veo que haz cambiado la pregunta, en estos casos lo ideal es colocar un nuevo post para tener mejor control sobre los mensajes. Pero antes de contestarte ¿revisaste los tipos de datos?

PD. La diferencia radica en que por el primero usas OLEDB y por el segundo usas ODBC, basicamente. Lo de fijar la configuración de Access.....pues no te entiendo.
todos los campos son texto menos el telefono es numerico
como es eso del oConn.nothing
ahora estoy haciendo los cambios que me dijeste
  #10 (permalink)  
Antiguo 19/11/2004, 10:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
oConn=nothing

Por eso el error, el telefono es ¿numérico?, (¿y por que numérico?), debes cambiarlo a Text.
  #11 (permalink)  
Antiguo 19/11/2004, 10:09
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
Veo que haz cambiado la pregunta, en estos casos lo ideal es colocar un nuevo post para tener mejor control sobre los mensajes. Pero antes de contestarte ¿revisaste los tipos de datos?

PD. La diferencia radica en que por el primero usas OLEDB y por el segundo usas ODBC, basicamente. Lo de fijar la configuración de Access.....pues no te entiendo.
si elimino el objeto oConn.close
como cierro la coneccion
sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"

oConn.Execute(sSQL)
  #12 (permalink)  
Antiguo 19/11/2004, 10:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Con objConn.close cierras la conexión.
Con objConn=nothing eliminas el objeto.
  #13 (permalink)  
Antiguo 19/11/2004, 10:14
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
Con objConn.close cierras la conexión.
Con objConn=nothing eliminas el objeto.
ahora salio esto
Páginas Active Server error 'ASP 0221'

Directiva de comando @ no válida

/insertar1.asp, line 4

Opción 'LANGUAJE="VBSCRIPT"' especificada no válida o desconocida
  #14 (permalink)  
Antiguo 19/11/2004, 10:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
<%@language="vbscript" %>
  #15 (permalink)  
Antiguo 19/11/2004, 10:23
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
<%@language="vbscript" %>
me sigue saliendo estoPáginas Active Server error 'ASP 0221'

Directiva de comando @ no válida

/insertar1.asp, line 4

Opción 'languaje="vbscript"' especificada no válida o desconocida.

ahora este es el codigo:
<html>
<head>
<title>insertar1.asp</title>
<%@languaje="vbscript" %>
</head>
<body>
<%

nombre=Request.Form("nombre")
apellidopaterno=Request.Form("apellido paterno")
apellidomaterno=Request.Form("apellido materno")
telefono= Request.Form("telefono")
comentarios=Request.Form("comentarios")

Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base1.mdb")

sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"
'response.write sSQL
'set RS =
objConn.Execute(sSQL)
%>
<h1><div align="center">Registro Insertado</div></h1>
<%
objConn.Close
objConn=nothing
%>
</BODY>
</HTML>
  #16 (permalink)  
Antiguo 19/11/2004, 10:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Iniciado por heba80
...
<html>
<head>
<title>insertar1.asp</title>
<%@languaje="vbscript" %>
</head>
<body>
<%...
Vamos, es cosa de poner un poco de atención
  #17 (permalink)  
Antiguo 19/11/2004, 10:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
Vamos, es cosa de poner un poco de atención
salio esto:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Controlador ODBC Microsoft Access] El campo 'Tabla1.apellidopaterno' no puede ser una cadena de longitud cero.

/insertar1.asp, line 21
has revisado el codigo nuevamente
  #18 (permalink)  
Antiguo 19/11/2004, 12:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
haba80, el error creo que es lo suficientemente claro como para no haber tenido que haber abierto otro post.

Como U_GoldMan te recomendó, verifica que el diseño de la tabla -> Pestaña general -> Opción "Permitir Longitud Cero" que indique SI, siempre y cuando esto no afecte las restricciones de integridad de la BD's.
  #19 (permalink)  
Antiguo 19/11/2004, 13:00
 
Fecha de Ingreso: noviembre-2004
Mensajes: 496
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Myakire
haba80, el error creo que es lo suficientemente claro como para no haber tenido que haber abierto otro post.

Como U_GoldMan te recomendó, verifica que el diseño de la tabla -> Pestaña general -> Opción "Permitir Longitud Cero" que indique SI, siempre y cuando esto no afecte las restricciones de integridad de la BD's.
GRACIAS myakire la pagina a logrado insertar registros asi quedo el codigo:
<html>
<head>
<title>insertar1.asp</title>
<%@language="vbscript"%>
</head>
<body>
<%
Dim objConn
nombre=Request.Form("nombre")
apellidopaterno=Request.Form("apellido paterno")
apellidomaterno=Request.Form("apellido materno")
telefono= Request.Form("telefono")
comentarios=Request.Form("comentarios")

Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base1.mdb")

sSQL="Insert INTO Tabla1 (nombre, apellidopaterno, apellidomaterno, telefono, comentario) values ('" & nombre & "','" & apellidopaterno & "','" & apellidomaterno & "','" & telefono & "','" & comentario & "')"

'set RS =
objConn.Execute(sSQL)
%>
<h1><div align="center">Registro Insertado</div></h1>
<%
objConn.Close

%>
</BODY>
</HTML>
pero los campos apellidos paternos, maternos ,comentarios no ingresa por que?
  #20 (permalink)  
Antiguo 19/11/2004, 13:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Si dices que "la pagina a logrado insertar registros", ¿por qué también comentas que "los campos apellidos paternos, maternos ,comentarios no ingresa"?

¿Ya verificaste en el diseño de la tabla, como dijo U_G, si esos campos tienen alguna restricción (Valores Nulos, Longitud cero, etc.)?
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 21:39.