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

Multiples consultas a base de datos

Estas en el tema de Multiples consultas a base de datos en el foro de ASP Clásico en Foros del Web. Hola Amigos: deseo hacer una consulta a una tabla de una base de datos, obtener un dato de ella y despues conectarme a otra tabla ...
  #1 (permalink)  
Antiguo 10/10/2006, 20:35
Avatar de darom  
Fecha de Ingreso: agosto-2006
Mensajes: 43
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Multiples consultas a base de datos

Hola Amigos:
deseo hacer una consulta a una tabla de una base de datos, obtener un dato de ella y despues conectarme a otra tabla de la misma base de datos y obtener otros datos.
Estoy trabajando en el siguiente código, pero me da el siguiente error:
Agradeceré me puedan dar una opinión de lo que falla.

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta '[email protected]'.
/perfil.asp, línea 17

perfil.asp
Código:
<!--#include file="comunes.asp"-->
<%
Dim oConn, rs, SQL
Conectar
Registro rs
SQL = "SELECT * FROM mensajes WHERE idmensaje=" & Request.QueryString("idmensaje") & ""
rs.Open SQL, oConn
cuantos=rs.recordcount
Correo=rs.Fields("Email")
Autor=rs.Fields("Autor")
LimpiarRS (rs)
LimpiarConexion
Dim rs2
Conectar
Registro rs
SQL = "SELECT * FROM resultados WHERE Email=" & Correo & ";"
rs.Open SQL, oConn
 %>
La línea 17 es: rs.Open SQL, oConn


La página comunes.asp contiene
Código:
<%
Sub Conectar
' Conecta a bd

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db\midatabase.mdb")


End Sub
'================================================================================================

Sub Registro (id)
' Crea un recordset 


set id=Server.CreateObject("ADODB.Recordset")


End Sub

'================================================================================================

Sub LimpiarConexion

oConn.Close
set oConn=nothing

End Sub

'================================================================================================

Sub LimpiarRS (rs)

rs.Close
set rs=nothing

End Sub
%>
Desde ya muchas gracias
  #2 (permalink)  
Antiguo 11/10/2006, 07: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
Por el error se observa que faltan apóstrofes:

SQL = "SELECT * FROM resultados WHERE Email='" & Correo & "'"

Saludos
  #3 (permalink)  
Antiguo 11/10/2006, 16:50
Avatar de darom  
Fecha de Ingreso: agosto-2006
Mensajes: 43
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo

muchas gracias por tu respuesta, la verdad que me tenia loco esos malditos apostrofes que faltaban. Como veras se muy poco, pero queria saber en que caso se usan apostrofes y en cuales no al hacer un consulta a la base de datos.

Saludos
  #4 (permalink)  
Antiguo 11/10/2006, 17:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Los apóstrofes se usan cuando estás consultando un campo de tipo texto, una consulta SQL desde ASP no es mas que un string formado de tal manera que el resultado sea una consulta SQL válida:

Código:
SQL
SELECT * FROM resultados WHERE email = '[email protected]'

En ASP tendrías que formar algo así:
email = "[email protected]"
qry = "SELECT * FROM resultados WHERE email ='" & email & "'"
Si haces un Response.Write(qry) podrás ver que qry tendrá al final el mismo valor que la sentencia uno.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 11/10/2006, 20:37
Avatar de darom  
Fecha de Ingreso: agosto-2006
Mensajes: 43
Antigüedad: 17 años, 10 meses
Puntos: 0
Muchas gracias por tu respuesta, me preguntaba para que m... servían esos caprichosos apóstrofes
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 00:27.