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. Tengo una página hecha con asp donde guardo unos valores en una base de datos. Los introduzco anteriormente en un html. Como tengo 2 tablas ...
  #1 (permalink)  
Antiguo 03/04/2006, 04:20
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 19 años, 8 meses
Puntos: 4
No coinciden los tipos de datos en la expresión de criterios

Tengo una página hecha con asp donde guardo unos valores en una base de datos. Los introduzco anteriormente en un html.

Como tengo 2 tablas relacionadas con un id autonumerico intento poner el valor en una variable. El primer asp va bien:

Cita:
<!doctype html public "-//w3c//dtd html 3.2//en">

<html>

<head>
<title>(Type a title for your page here)</title>
<%@ LANGUAGE=JScript %>

<meta name="GENERATOR" content="Arachnophilia 4.0">
<meta name="FORMATTER" content="Arachnophilia 4.0">
<form action="OtrasActividades.asp" METHOD =POST>


</head>

<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<%
conexion= new ActiveXObject("ADODB.Connection")
registro1=new ActiveXObject("ADODB.Recordset")
conexion.Open("datos")
x="select * from 902_DATOS_GENERALES where Empresa='"+Request.Form("empresa")+"'"
registro1.Open (x, conexion, 3, 0x0002)

if(registro1.EOF)
{
registro1.Addnew ()
registro1("Empresa") = Request.form ("empresa")
registro1("Direccion") = Request.form ("direccion")
registro1.Update()

Response.Write("Datos correctos")
}

else

{
Response.Write("Nombre de la empresa no válida")
}

registro1.close()
conexion.close()

conexion5= new ActiveXObject("ADODB.Connection")
registro5=new ActiveXObject("ADODB.Recordset")
conexion5.Open ("datos")
Fnc_Sql = "Select @@IDENTITY as IdEmpresa"
registro5.Open (Fnc_Sql, conexion5, 3, 0x0002)
Id_New = registro5("IdEmpresa")
registro5.Close()
conexion5.close()
%>
<center>
<h3>OTRAS ACTIVIDADES DE LA EMPRESA</h3>
</center>

<br>
<br>

<h3>Descripción de otras actividades
<input type=text name="desactividades">
<br>
<input type="submit" value="ALTA">

</body>

</html>
Este asp llama a otro para guadar la actividad de la empresa con la IdEmpresa q se ha guardado en la variable Id_New. O eso es lo q yo pretendo q haga.
Aqui esta el codigo del otro asp para guardar los datos en otra tabla.
Cita:
<!doctype html public "-//w3c//dtd html 3.2//en">

<html>

<head>
<title>(Type a title for your page here)</title>
<%@ LANGUAGE=JScript %>

<meta name="GENERATOR" content="Arachnophilia 4.0">
<meta name="FORMATTER" content="Arachnophilia 4.0">
</head>

<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">

<%
conexion4=new ActiveXObject("ADODB.Connection")
registro4=new ActiveXObject("ADODB.Recordset")
conexion4.Open ("datos")
x="select * from 903_OTRAS_ACTIVIDADES where IdEmpresa='"+Request.Form("Id_New")+"'"
registro4.Open (x, conexion4, 3, 0x0002)

if(registro4.EOF)
{
registro4.Addnew ()
registro4("DesOtrasActividades") = Request.form ("desactividades")
registro4("IdEmpresa") = Request.form("Id_New")
registro4.Update()

Response.Write("Datos correctos")
}

else
{
Response.write ("Error")
}
registro4.close()
conexion4.close()
%>



</body>

</html>
Pero me sale este error:
Cita:
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.

/OtrasActividades.asp, línea 20
La linea 20 es donde hace la conexion:
Cita:
registro4.Open (x, conexion4, 3, 0x0002)
Habia pensado en cambiar el valor del id en la tabla donde no es clave. Pero si no es númerico no deja relacionarla. X eso no comprendo el error.

¿Alguien me puede ayudar? Muchas gracias.
  #2 (permalink)  
Antiguo 03/04/2006, 07:36
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 19 años, 6 meses
Puntos: 0
prueba de ponerle esto a ver si te va:

where IdEmpresa='"+CINT(Request.Form("Id_New"))+"'"

Saludos
__________________

  #3 (permalink)  
Antiguo 03/04/2006, 08:06
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 20 años, 5 meses
Puntos: 0
Como el IdEmpresa es numerico pon la instruccion sql de esta forma
Código:
select * from 903_OTRAS_ACTIVIDADES where IdEmpresa= " & Request.Form("Id_New")
saludos espero te funcione
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #4 (permalink)  
Antiguo 03/04/2006, 08:20
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 19 años, 8 meses
Puntos: 4
Muchas gracias x las respuestas.

Pinchoso: He puesto el código q me has puesto, y me aparece este error, en la línea del select:
Cita:
Error en tiempo de ejecución de Microsoft JScript error '800a138f'

Se esperaba un objeto

/OtrasActividades.asp, línea 19
JoseGCB: He copiado tu código añadiendole doble comilla al final para cerrar el select, y me sale este error, en la misma línea de antes de ponerme posibles soluciones:
Cita:
ADODB.Recordset error '800a0bb9'

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

/OtrasActividades.asp, línea 20
Saludos.
  #5 (permalink)  
Antiguo 03/04/2006, 08:35
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 20 años, 5 meses
Puntos: 0
Manda a imprimir el sql sin ejcutarlo para ver que te manda por que la otra solucionseria


Código:
"select * from 903_OTRAS_ACTIVIDADES where IdEmpresa= " & CINT(Request.Form("Id_New"))
como el campo es numerico no hace falta las comillas simples ni cerrar las comillas dobles

intenta con esto a ver si te funciona
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #6 (permalink)  
Antiguo 03/04/2006, 08:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 19 años, 8 meses
Puntos: 4
Con la solución q me pones me aparece
Cita:
Error en tiempo de ejecución de Microsoft JScript error '800a138f'

Se esperaba un objeto

/OtrasActividades.asp, línea 19
Lo siento lo de mandar a imprimir.. pongo un print y luego el select? Sq eso ya si q no he dado. Gracias
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 09:41.