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

Problema variables ASP

Estas en el tema de Problema variables ASP en el foro de ASP Clásico en Foros del Web. La pregunta es la siguiente en ASP. Estoy en un proyecto web y el caso es que abres un arhivo llamado ficha.asp y muestra una ...
  #1 (permalink)  
Antiguo 26/02/2007, 06:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 18 años, 2 meses
Puntos: 0
Problema variables ASP

La pregunta es la siguiente en ASP.

Estoy en un proyecto web y el caso es que abres un arhivo llamado ficha.asp y muestra una serie de datos entre ellos ref y ref2 los cuales los tomo del archivo inicial (con el que abri ficha.asp).

Hasta ahi todo claro, abres un archivo asp que muestra ref y ref2; y quiero abrir otra ventana aparte de esta que tome esa ref y ref2 ademas de mostrar esas dos variables tiene que permitir guardarlas en un registro junto con mas datos.




Codigo:

archivo: ficha.asp
'abrimos la ventana de compradores donde va ref y ref2
'la funcion abrir ventana esta arriba y abre perfectamente


<a href="javascript:ventanaSecundaria('../comprador2.asp?ref=<%=(ficha.Fields.Item("ref").Va lue)%>&ref2=<%=(ficha.Fields.Item("ref2").Value)%> ')">Nuevo Expediente para: </a>


archivo comprador2.asp

'la consulta para recibir y mostrar a ref y ref2

refer=request.QueryString("ref")
refer2=request.QueryString("ref2")

Dim entrega
Dim entrega_numRows

Set entrega = Server.CreateObject("ADODB.Recordset")
entrega.ActiveConnection = MM_lai_STRING
entrega.Source = "SELECT * FROM vivienda WHERE ref="&refer&" and ref2='"&refer2&"'"
entrega.CursorType = 0
entrega.CursorLocation = 2
entrega.LockType = 1
entrega.Open()
entrega_numRows = 0
...
'donde lo muestra
...
<%response.write(entrega.Fields.Item("ref2").Value )&"/"&(entrega.Fields.Item("ref").Value)%>

Esto es lo que tambien hace comprador2.asp, ingresar datos de un formulario.
...
nombre=request.form("nombre")
apellidos=request.form("apellidos")
"&refer&" and "&refer2&"= referencia
referencia=request.form("referencia")

...
ingresar.addnew
ingresar("nombre")=nombre
ingresar("apellidos")=apellidos
ingresar("refvivienda")=refvivienda
...
ingresar.update
ingresar.Close()
Set ingresar = Nothing



Intente lo que esta en rojo... mensaje de error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'ref= and ref2='''.


Llevo poco con ASP, le he dado vueltas a la m**** esta y nada; un poco de luz por favor.
  #2 (permalink)  
Antiguo 26/02/2007, 08:19
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Problema variables ASP

Mi consejo: Antes de montar una cadena SQL comprueba los valores:

A - Que no esten vacios (variable <> "")
B - Que sean de los tipos requeridos (integer -> isNumeric(variable), fecha -> isDate(fecha), etc)

La mayoria de los errores vienen por ahi.

La linea:
"&refer&" and "&refer2&"= referencia

No es codigo ASP con lo cual no se lo que quieres hacer ya que a continuacion asignas a referencia el valor del Form. ¿Que es lo que pretendes hacer ahí?

NOTA: El error ODBC es que no hay valores en ref y/o ref2 por lo que es debido a lo primero que te dije.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 27/02/2007, 03:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Problema variables ASP

Gracias tammander

Le echare un vistazo y si eso vengo con mas dudas :(



Salu2
  #4 (permalink)  
Antiguo 27/02/2007, 06:06
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Re: Problema variables ASP

Supongo que tanto "ref y ref2" pasan números, así podrías hacer

Código:
refer=CInt(request.QueryString("ref"))
refer2=CInt(request.QueryString("ref2"))
Para ver lo que estás recibiendo en la consulta, haz esto, sin las comillas simple en -refer2-


Código:
Set entrega = Server.CreateObject("ADODB.Recordset")
entrega.ActiveConnection = MM_lai_STRING
entrega.Source = "SELECT * FROM vivienda WHERE ref="&refer&" and ref2="&refer2&""
entrega.CursorType = 0
entrega.CursorLocation = 2 
entrega.LockType = 1
entrega.Open()
response.write entrega.Source
response.end
Suerte
  #5 (permalink)  
Antiguo 02/03/2007, 13:38
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Problema variables ASP

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos: 'CInt'
/comprador2.asp, línea 16


Simpatico y c**** es menos la mierda esta

Aun asi despues de ponerlo como CStr porque si, traen numeros pero tambien esta barra "/" me contesto el mismo error el hdp este xDDD




Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'ref= and ref2='''.
/comprador2.asp, línea 28



Gracias Adler por el cable pero es mucho hueso para tampoco perro xDD


Salu2
  #6 (permalink)  
Antiguo 03/03/2007, 06:27
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Re: Problema variables ASP

Supongo, y es mucho suponer que lo que pasas por la Query son valores númerocos, así que si te da el error

Código:
Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos: 'CInt'
es que no le estas pasando ningún valor.

Con respecto a lo que dices de la "/" un apunte
1º No uses para imprimir los datos Response.Write, está demostrado que es mucho más lento que si haces así

Código:
<%=(entrega.Fields.Item("ref2").Value )%>/<%=(entrega.Fields.Item("ref").Value)%>
Suerte
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:05.