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

Error con SQL

Estas en el tema de Error con SQL en el foro de ASP Clásico en Foros del Web. Tengo un problema intentando leer de mi base de datos. La idea es que se pasa el numero de registro que se quiere leer mediante ...
  #1 (permalink)  
Antiguo 24/11/2002, 13:09
 
Fecha de Ingreso: febrero-2002
Ubicación: Ciudad Real
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
Error con SQL

Tengo un problema intentando leer de mi base de datos. La idea es que se pasa el numero de registro que se quiere leer mediante el metodo get, pero me da un error cuando lo introduzco en la sentencia SQL.

Primero defino las variables:

Dim pp
pp = Request.QueryString("ID")
Dim qp
qp = Request.QueryString("Reg")

Y luego las introduzco en la sentencia:
sSQL = "SELECT * FROM " & pp & " where IDent = " & Request.QueryString("Reg") & " "

Pero siempre me sale este error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'IDent ='.

/raiderspy/contenido.asp, line 30


Alguien me puede ayudar? Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 24/11/2002, 13:18
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
IdEnt es numerico?

Ya verificaste que el Query string realmente recoja o traiga valor?

Saludos
  #3 (permalink)  
Antiguo 24/11/2002, 13:20
 
Fecha de Ingreso: febrero-2002
Ubicación: Ciudad Real
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
IDent es autonumerico y las variables recogen el valor.
  #4 (permalink)  
Antiguo 24/11/2002, 13:33
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
Imrpime sSQL antes de ejecutarla y coloca como queda aqui
  #5 (permalink)  
Antiguo 24/11/2002, 13:35
 
Fecha de Ingreso: febrero-2002
Ubicación: Ciudad Real
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
como?

Es que un poco novato en esto
  #6 (permalink)  
Antiguo 24/11/2002, 13:38
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
Coloca aqui el codigo donde haces la conexion y ejecutas la SQL

Nada mas ese código
  #7 (permalink)  
Antiguo 24/11/2002, 13:41
 
Fecha de Ingreso: febrero-2002
Ubicación: Ciudad Real
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
<%
Dim oConn
Dim oRS
Dim sSQL



Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\javier1287\db\datos1.mdb"))
%>

<%
Dim pp
pp = Request.QueryString("ID")

%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina nueva 1</title>
<LINK REL="stylesheet" MEDIA="screen" HREF="pantalla.css"
TYPE="text/css">
</head>
<body class="normal">
<h1><%=pp%></h1>
<hr>
<ul>
<%
sSQL = "SELECT * FROM " & pp & " ORDER BY IDent"
Set oRS = oConn.Execute(sSQL)
Do Until oRS.EOF
%>

<li><a href="contenido.asp?ID=<%=pp%>&&Reg=<%=oRS("IDent" )%>"><%=oRS("Titulo")%></a></li>
<%oRS.MoveNext
Loop
%>

</ul>

</body>

</html>
<%
oConn.Close
Set oRS = Nothing
Set oConn = Nothing

%>
  #8 (permalink)  
Antiguo 24/11/2002, 13:54
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
es este:

Cita:
sSQL = "SELECT * FROM " & pp & " ORDER BY IDent"
o es este?

Cita:
sSQL = "SELECT * FROM " & pp & " ORDER BY IDent"
  #9 (permalink)  
Antiguo 25/11/2002, 06:04
Avatar de cacike500  
Fecha de Ingreso: noviembre-2002
Mensajes: 56
Antigüedad: 22 años, 5 meses
Puntos: 0
Diálogo de besugos

Tu problema es que el valor que coges con el querystring no es numérico. Lo que tienes que hacer el convertirlo a número. Por eso te la el error la instrucción SQL.

El código sería el siguiente:

dim IDent
IDent = cint(request.querystring("nombre_valor"))

y luego la consulta SQL tal y como la tienes. Ya verás como funciona.

Espero haber servido de ayuda

cacike500
__________________
como dice un sabio amigo mio:
web puede...
master algo menos...
[AIG...2001]
  #10 (permalink)  
Antiguo 30/11/2002, 08:25
 
Fecha de Ingreso: febrero-2002
Ubicación: Ciudad Real
Mensajes: 32
Antigüedad: 23 años, 3 meses
Puntos: 0
El codigo de la pagina ha quedado asi:

<%
Dim oConn
Dim oRS
Dim sSQL
Dim sColor


Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\raiderspy\db\pepe.mdb"))
%>

<%
Dim pp
pp = Request.QueryString("ID")
Dim qp
qp = cint(Request.QueryString("Reg"))%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina nueva 1</title>
<LINK REL="stylesheet" MEDIA="screen" HREF="pantalla.css"
TYPE="text/css">
</head>
<body class="normal">
<%
sSQL = "SELECT * FROM " & pp & " where IDent = " & qp & " "
Set oRS = oConn.Execute(sSQL)
%>
<h1><%=oRS("Titulo")%></h1>
<p align="center"><i><%=oRS("Resumen")%></i></p>

<p align="Justified"><%=oRS("Texto")%></p>
</body>
</html>
<%
oConn.Close
Set oRS = Nothing
Set oConn = Nothing

%>


Pero ahora me de este otro error:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/raiderspy/contenido.asp, line 0


Teniendo en cuenta que la base de datos no está vacia... Que ocurre?

Y ya de paso... ¿Que es un BOF?
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 07:48.