Problema en select ayuda porfa

16/01/2006 - 21:15 por transvega | Informe spam
Saludos a todos, necesito de su valiosa ayuda ya que esto me urge un poco,
resulta que tengo en una BD SQL 2 tablas, una de usuarios y otra para
resultados.

La primera ASP que tengo me captura el ID del usuario y lo paso a una
segunda ASP la cuál debe verificar primero si se encuentra el ID en la
tabla Usuarios, y luego verificar si ha grabado algun resultado en la otra
tabla, si es así enviar un mensaje que ya ingresó anteriormente. Si no
existe en Resultados enviarlo a la ASP del cuestionario y si no existe en
ninguna enviar mensaje diciendo que no existe el ID.

Estoy utilizando un ODBC para conectar a la BD pero cuando intento validar
el ID me sale el mensaje de que no existe el ID en la BD y es porque está
validando las dos.

Les adjunto el código para que me den una ayuda a ver cuál es el problema,
lo cual les agradecería mucho.


El código es el siguiente:

<html>
<td width="30%"><img src="img/Logo_MH.jpg" width="136" height="122"> </td>
<br>
<br>
<br>
</html>

<%
Dim cedula, oConn, RS, Id

'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a validar.asp
If Request.Form("cedula") = "" then
Response.Redirect "validar.asp"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
cedula = Trim(Request.Form("cedula"))
cedula = Replace(cedula,"'","''")
Id=cedula

'Conexion por ODBC
oConn.Open "DSN=control;UID=XXXX;PWD=XXXX"

'Seleccionamos de la tabla solo los registros que concuerden con el
usuario del Form.
sql = "SELECT * FROM TUsuarios U, Tresultadosweb W WHERE U.cedula = "&
cedula &" or W.cedula= "& cedula &""

Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, oConn
'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el
usuario.
If (RS.EOF = true) then

Response.Write "Esta ID no existe en nuestra base de datos, favor
contactar al personal técnico de la comisión"
ElseIf RS.Fields("cedula") = cedula then 'Si el campo de la tabla es igual
a nuestra variable, estas logueado.


'Para redireccionar a la pagina del demo
response.Write "La cédula número: " & Cedula & "<br>"
response.Write "Ya proporcionó las respuestas anteriormente"

Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
'Response.Write "Esta cédula no se encuentra registrada"
'Para redireccionar a la pagina del demo
Response.Redirect("cuestionario.asp?Id="&Server.URLEncode(cedula)&"")


End If
'Limpiamos y cerramos.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
17/01/2006 - 16:08 | Informe spam
Suponiendo que primeramente se graba en la tabla de usuarios, yo
probaría con la siguiente consulta:

SELECT u.cedula as usuario, w.cedula as resultado FROM TUsuarios u LEFT
JOIN TresultadosWeb w ON u.cedula=w.cedula WHERE u.cedula= #valor del
parámetro#

Se pueden dar entonces tres casos:

- Que u.cedula sea NULL -> el usuario no existe
- Que w.cedula sea NULL -> el usuario existe pero no ingresó resultados
en esa tabla
- Que los dos campos sean diferentes de NULL -> el usuario existe e
ingresó resultados en la tabla



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Jorge" escribió en el mensaje
news:#
Saludos a todos, necesito de su valiosa ayuda ya que esto me urge un poco,
resulta que tengo en una BD SQL 2 tablas, una de usuarios y otra para
resultados.

La primera ASP que tengo me captura el ID del usuario y lo paso a una
segunda ASP la cuál debe verificar primero si se encuentra el ID en la
tabla Usuarios, y luego verificar si ha grabado algun resultado en la otra
tabla, si es así enviar un mensaje que ya ingresó anteriormente. Si no
existe en Resultados enviarlo a la ASP del cuestionario y si no existe en
ninguna enviar mensaje diciendo que no existe el ID.

Estoy utilizando un ODBC para conectar a la BD pero cuando intento validar
el ID me sale el mensaje de que no existe el ID en la BD y es porque está
validando las dos.

Les adjunto el código para que me den una ayuda a ver cuál es el problema,
lo cual les agradecería mucho.


El código es el siguiente:

<html>
<td width="30%"><img src="img/Logo_MH.jpg" width="136" height="122"> </td>
<br>
<br>
<br>
</html>

<%
Dim cedula, oConn, RS, Id

'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a validar.asp
If Request.Form("cedula") = "" then
Response.Redirect "validar.asp"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
cedula = Trim(Request.Form("cedula"))
cedula = Replace(cedula,"'","''")
Id=cedula

'Conexion por ODBC
oConn.Open "DSN=control;UID=XXXX;PWD=XXXX"

'Seleccionamos de la tabla solo los registros que concuerden con el
usuario del Form.
sql = "SELECT * FROM TUsuarios U, Tresultadosweb W WHERE U.cedula = "&
cedula &" or W.cedula= "& cedula &""

Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, oConn
'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el
usuario.
If (RS.EOF = true) then

Response.Write "Esta ID no existe en nuestra base de datos, favor
contactar al personal técnico de la comisión"
ElseIf RS.Fields("cedula") = cedula then 'Si el campo de la tabla es igual
a nuestra variable, estas logueado.


'Para redireccionar a la pagina del demo
response.Write "La cédula número: " & Cedula & "<br>"
response.Write "Ya proporcionó las respuestas anteriormente"

Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
'Response.Write "Esta cédula no se encuentra registrada"
'Para redireccionar a la pagina del demo
Response.Redirect("cuestionario.asp?Id="&Server.URLEncode(cedula)&"")


End If
'Limpiamos y cerramos.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>

Respuesta Responder a este mensaje
#2 Carlos Sacristán
17/01/2006 - 16:54 | Informe spam
Perdón, el primer caso evidentemente no se puede dar porque lo que
ocurre en realidad es que no hay resultados.

A estas horas ya a uno le empieza a fallar la neurona...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Suponiendo que primeramente se graba en la tabla de usuarios, yo
probaría con la siguiente consulta:

SELECT u.cedula as usuario, w.cedula as resultado FROM TUsuarios u


LEFT
JOIN TresultadosWeb w ON u.cedula=w.cedula WHERE u.cedula= #valor del
parámetro#

Se pueden dar entonces tres casos:

- Que u.cedula sea NULL -> el usuario no existe
- Que w.cedula sea NULL -> el usuario existe pero no ingresó


resultados
en esa tabla
- Que los dos campos sean diferentes de NULL -> el usuario existe e
ingresó resultados en la tabla



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Jorge" escribió en el mensaje
news:#
> Saludos a todos, necesito de su valiosa ayuda ya que esto me urge un


poco,
> resulta que tengo en una BD SQL 2 tablas, una de usuarios y otra para
> resultados.
>
> La primera ASP que tengo me captura el ID del usuario y lo paso a una
> segunda ASP la cuál debe verificar primero si se encuentra el ID en la
> tabla Usuarios, y luego verificar si ha grabado algun resultado en la


otra
> tabla, si es así enviar un mensaje que ya ingresó anteriormente. Si no
> existe en Resultados enviarlo a la ASP del cuestionario y si no existe


en
> ninguna enviar mensaje diciendo que no existe el ID.
>
> Estoy utilizando un ODBC para conectar a la BD pero cuando intento


validar
> el ID me sale el mensaje de que no existe el ID en la BD y es porque


está
> validando las dos.
>
> Les adjunto el código para que me den una ayuda a ver cuál es el


problema,
> lo cual les agradecería mucho.
>
>
> El código es el siguiente:
>
> <html>
> <td width="30%"><img src="img/Logo_MH.jpg" width="136" height="122">


</td>
> <br>
> <br>
> <br>
> </html>
>
> <%
> Dim cedula, oConn, RS, Id
>
> 'Primero nos fijamos si ambos campos fueron completados.
> 'Si no se cumple, redireccionamos a validar.asp
> If Request.Form("cedula") = "" then
> Response.Redirect "validar.asp"
> Else
> 'Guardamos los datos del Form en variables y evitamos la comilla simple
> cedula = Trim(Request.Form("cedula"))
> cedula = Replace(cedula,"'","''")
> Id=cedula
>
> 'Conexion por ODBC
> oConn.Open "DSN=control;UID=XXXX;PWD=XXXX"
>
> 'Seleccionamos de la tabla solo los registros que concuerden con el
> usuario del Form.
> sql = "SELECT * FROM TUsuarios U, Tresultadosweb W WHERE U.cedula = "&
> cedula &" or W.cedula= "& cedula &""
>
> Set RS = Server.CreateObject ("ADODB.RecordSet")
> RS.Open sql, oConn
> 'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el
> usuario.
> If (RS.EOF = true) then
>
> Response.Write "Esta ID no existe en nuestra base de datos, favor
> contactar al personal técnico de la comisión"
> ElseIf RS.Fields("cedula") = cedula then 'Si el campo de la tabla es


igual
> a nuestra variable, estas logueado.
>
>
> 'Para redireccionar a la pagina del demo
> response.Write "La cédula número: " & Cedula & "<br>"
> response.Write "Ya proporcionó las respuestas anteriormente"
>
> Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
> 'Response.Write "Esta cédula no se encuentra registrada"
> 'Para redireccionar a la pagina del demo
> Response.Redirect("cuestionario.asp?Id="&Server.URLEncode(cedula)&"")
>
>
> End If
> 'Limpiamos y cerramos.
> RS.Close
> oConn.Close
> Set RS = Nothing
> Set oConn = Nothing
> End If
> %>
>


Respuesta Responder a este mensaje
#3 transvega
17/01/2006 - 20:04 | Informe spam
Te agradezco mucho la ayuda y por el tiempo que dedicaste para leer mi
mensaje.

Saludos

Jorge Vega


Carlos Sacristán wrote:

Perdón, el primer caso evidentemente no se puede dar porque lo que
ocurre en realidad es que no hay resultados.

A estas horas ya a uno le empieza a fallar la neurona...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
> Suponiendo que primeramente se graba en la tabla de usuarios, yo
> probaría con la siguiente consulta:
>
> SELECT u.cedula as usuario, w.cedula as resultado FROM TUsuarios u
LEFT
> JOIN TresultadosWeb w ON u.cedula=w.cedula WHERE u.cedula= #valor del
> parámetro#
>
> Se pueden dar entonces tres casos:
>
> - Que u.cedula sea NULL -> el usuario no existe
> - Que w.cedula sea NULL -> el usuario existe pero no ingresó
resultados
> en esa tabla
> - Que los dos campos sean diferentes de NULL -> el usuario existe e
> ingresó resultados en la tabla
>
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Jorge" escribió en el mensaje
> news:#
> > Saludos a todos, necesito de su valiosa ayuda ya que esto me urge un
poco,
> > resulta que tengo en una BD SQL 2 tablas, una de usuarios y otra para
> > resultados.
> >
> > La primera ASP que tengo me captura el ID del usuario y lo paso a una
> > segunda ASP la cuál debe verificar primero si se encuentra el ID en la
> > tabla Usuarios, y luego verificar si ha grabado algun resultado en la
otra
> > tabla, si es así enviar un mensaje que ya ingresó anteriormente. Si no
> > existe en Resultados enviarlo a la ASP del cuestionario y si no existe
en
> > ninguna enviar mensaje diciendo que no existe el ID.
> >
> > Estoy utilizando un ODBC para conectar a la BD pero cuando intento
validar
> > el ID me sale el mensaje de que no existe el ID en la BD y es porque
está
> > validando las dos.
> >
> > Les adjunto el código para que me den una ayuda a ver cuál es el
problema,
> > lo cual les agradecería mucho.
> >
> >
> > El código es el siguiente:
> >
> > <html>
> > <td width="30%"><img src="img/Logo_MH.jpg" width="136" height="122">
</td>
> > <br>
> > <br>
> > <br>
> > </html>
> >
> > <%
> > Dim cedula, oConn, RS, Id
> >
> > 'Primero nos fijamos si ambos campos fueron completados.
> > 'Si no se cumple, redireccionamos a validar.asp
> > If Request.Form("cedula") = "" then
> > Response.Redirect "validar.asp"
> > Else
> > 'Guardamos los datos del Form en variables y evitamos la comilla simple
> > cedula = Trim(Request.Form("cedula"))
> > cedula = Replace(cedula,"'","''")
> > Id=cedula
> >
> > 'Conexion por ODBC
> > oConn.Open "DSN=control;UID=XXXX;PWD=XXXX"
> >
> > 'Seleccionamos de la tabla solo los registros que concuerden con el
> > usuario del Form.
> > sql = "SELECT * FROM TUsuarios U, Tresultadosweb W WHERE U.cedula = "&
> > cedula &" or W.cedula= "& cedula &""
> >
> > Set RS = Server.CreateObject ("ADODB.RecordSet")
> > RS.Open sql, oConn
> > 'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el
> > usuario.
> > If (RS.EOF = true) then
> >
> > Response.Write "Esta ID no existe en nuestra base de datos, favor
> > contactar al personal técnico de la comisión"
> > ElseIf RS.Fields("cedula") = cedula then 'Si el campo de la tabla es
igual
> > a nuestra variable, estas logueado.
> >
> >
> > 'Para redireccionar a la pagina del demo
> > response.Write "La cédula número: " & Cedula & "<br>"
> > response.Write "Ya proporcionó las respuestas anteriormente"
> >
> > Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
> > 'Response.Write "Esta cédula no se encuentra registrada"
> > 'Para redireccionar a la pagina del demo
> > Response.Redirect("cuestionario.asp?Id="&Server.URLEncode(cedula)&"")
> >
> >
> > End If
> > 'Limpiamos y cerramos.
> > RS.Close
> > oConn.Close
> > Set RS = Nothing
> > Set oConn = Nothing
> > End If
> > %>
> >
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida