consulta sql

09/05/2006 - 13:40 por natalia | Informe spam
Hola a todos, soy nueva en esto y tengo un pequeño problema con una consulta
sql:
select * from tabla where campo = entero
Yo tengo la consulta de la siguiente manera
valor=request.form(id_factura)
Me he asegurado que valor contenga el valor que tiene que tener pero al
hacer la siguiente consulta me da un error.
El campo id_factura es de tipo numérico (entero largo)
strSQL="select * from clientes where clientes.id_factura ="& valor
set rssql = conn.Execute(strSQL)

A alguien se le ocurre qué puede ser
Gracias de antemano
Natalia

Preguntas similare

Leer las respuestas

#1 Dani Castillo
09/05/2006 - 15:54 | Informe spam
Hola natalia, ayudaria saber el tipo de error que te arroja

El fallo lo tienes aqui:
valor=request.form(id_factura)
deberia ser:
valor=request.form("id_factura")

de todas formas en estos casos conviene poner algo de traza (ayuda cuando
andamos perdidos con las sql q creo q a todos nos pasa en ocasiones)

strSQL="select * from clientes where clientes.id_factura ="& valor
response.write "Sentencia sql " & strSQL
set rssql = conn.Execute(strSQL)

asi sabes "cierto" la sentencia q esta construyendo, y la puedes comprobar
contra tu base de datos directamente (en mysql front o cualquier programa q
te permita meter sentencias a la base de datos y testearlas), a veces fallos
de logica de programa sencillos nos llevan a una sql mal construida, de
hecho yo suelo poner cosas como:
<%
strSQL="select * from clientes where clientes.id_factura ="& valor
%>
<!-- Sentencia SQL
<%=strSQL%>
<%
set rssql = conn.Execute(strSQL)


Es decir un comentario en javascript con la sentencia o sentencias q voy
usando, de esta forma ante un fallo en un pc q no sea el de desarrollo
siempre puedo hacer un ver-> codigo fuente y comprobar que esta pasando

por ultimo aunque no deberia ser el fallo , la sentencia la tienes como
strSQL="select * from clientes where clientes.id_factura ="& valor

si lo de antes aun te falla prueba con
strSQL="select * from clientes where id_factura ="& valor

aunque no deberia fallar, y comprueba claro que la conexion esté apuntando
donde debe (si es mysql o sql server incluyendo la base de datos)

dani.
____________________________
""
escribió en el
mensaje news:
Hola a todos, soy nueva en esto y tengo un pequeño problema con una


consulta
sql:
select * from tabla where campo = entero
Yo tengo la consulta de la siguiente manera
valor=request.form(id_factura)
Me he asegurado que valor contenga el valor que tiene que tener pero al
hacer la siguiente consulta me da un error.
El campo id_factura es de tipo numérico (entero largo)
strSQL="select * from clientes where clientes.id_factura ="& valor
set rssql = conn.Execute(strSQL)

A alguien se le ocurre qué puede ser
Gracias de antemano
Natalia
Respuesta Responder a este mensaje
#2 Nuno Santos
09/05/2006 - 16:03 | Informe spam
Haz lo siguinete:
Antes de hacer el execute haces un response.write de strSQL seguido de
un response.end, copias el valor de la string strSQL del browser y lo
ejecutas en el Query Analyzer, te dá erro ??, funciona??

NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

""
wrote in message
news:
Hola a todos, soy nueva en esto y tengo un pequeño problema con una
consulta
sql:
select * from tabla where campo = entero
Yo tengo la consulta de la siguiente manera
valor=request.form(id_factura)
Me he asegurado que valor contenga el valor que tiene que tener pero al
hacer la siguiente consulta me da un error.
El campo id_factura es de tipo numérico (entero largo)
strSQL="select * from clientes where clientes.id_factura ="& valor
set rssql = conn.Execute(strSQL)

A alguien se le ocurre qué puede ser
Gracias de antemano
Natalia
Respuesta Responder a este mensaje
#3 Nuno Santos
09/05/2006 - 16:08 | Informe spam
Sólo una cosita más... No es muy buena politica colocar las sentencias de
sql en el código fuente, pues asin cualquier persona te puede ver las
sentencias que se están ejecutando, nombre de tabelas de campos, y es mucho
más facil hacer SQL Injection, conociendo esos dados.

NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Dani Castillo" <danicastilloarrobahotmail.com> wrote in message
news:
Hola natalia, ayudaria saber el tipo de error que te arroja

El fallo lo tienes aqui:
valor=request.form(id_factura)
deberia ser:
valor=request.form("id_factura")

de todas formas en estos casos conviene poner algo de traza (ayuda cuando
andamos perdidos con las sql q creo q a todos nos pasa en ocasiones)

strSQL="select * from clientes where clientes.id_factura ="& valor
response.write "Sentencia sql " & strSQL
set rssql = conn.Execute(strSQL)

asi sabes "cierto" la sentencia q esta construyendo, y la puedes comprobar
contra tu base de datos directamente (en mysql front o cualquier programa
q
te permita meter sentencias a la base de datos y testearlas), a veces
fallos
de logica de programa sencillos nos llevan a una sql mal construida, de
hecho yo suelo poner cosas como:
<%
strSQL="select * from clientes where clientes.id_factura ="& valor
%>
<!-- Sentencia SQL
<%=strSQL%>
<%
set rssql = conn.Execute(strSQL)


Es decir un comentario en javascript con la sentencia o sentencias q voy
usando, de esta forma ante un fallo en un pc q no sea el de desarrollo
siempre puedo hacer un ver-> codigo fuente y comprobar que esta pasando

por ultimo aunque no deberia ser el fallo , la sentencia la tienes como
strSQL="select * from clientes where clientes.id_factura ="& valor

si lo de antes aun te falla prueba con
strSQL="select * from clientes where id_factura ="& valor

aunque no deberia fallar, y comprueba claro que la conexion esté apuntando
donde debe (si es mysql o sql server incluyendo la base de datos)

dani.
____________________________
""
escribió en el
mensaje news:
Hola a todos, soy nueva en esto y tengo un pequeño problema con una


consulta
sql:
select * from tabla where campo = entero
Yo tengo la consulta de la siguiente manera
valor=request.form(id_factura)
Me he asegurado que valor contenga el valor que tiene que tener pero al
hacer la siguiente consulta me da un error.
El campo id_factura es de tipo numérico (entero largo)
strSQL="select * from clientes where clientes.id_factura ="& valor
set rssql = conn.Execute(strSQL)

A alguien se le ocurre qué puede ser
Gracias de antemano
Natalia




Respuesta Responder a este mensaje
#4 Dani Castillo
09/05/2006 - 16:27 | Informe spam
:-) si en parte si, pero si pueden usar sql injection... pueden sacar los
nombres de las tablas , con lo q no creo q sea tampoco critico poner las
tablas a la vista (tampoco esq interese ahorrarles trabajo jeje pero si que
ayuda y mucho ese tipo de comentarios en js a la hora de solucionar
problemas con apps complejas)

en cualquier caso bueno programo mucho mas en entornos intranet q en web (y
ahi el usuario ya esta validado con lo que es 'de la casa' :-)

Una opcion alternativa seria tener ese tipo de comentarios centralizados en
un include, algo asi como una funcion
dim debug
debug= true ' o false claro :-)
sub comentario (texto)
if debug then
%>
<!--
<%=texto%>
<%
end if
end sub

asi modificando ese fichero include controlamos si hacemos o no debug (o
podemos en un futuro cambiarlo a un log mas 'serio' centralizado en un
fichero de texto por ejemplo y no visible desde fuera)



____________________________
Daniel Castillo Martinez
Ajuntament d'Alaquàs. Societat de la Informació

____________________________
"Nuno Santos" <nunos7[REMOVE]@hotmail.com> escribió en el mensaje
news:
Sólo una cosita más... No es muy buena politica colocar las sentencias de
sql en el código fuente, pues asin cualquier persona te puede ver las
sentencias que se están ejecutando, nombre de tabelas de campos, y es


mucho
más facil hacer SQL Injection, conociendo esos dados.

NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Dani Castillo" <danicastilloarrobahotmail.com> wrote in message
news:
> Hola natalia, ayudaria saber el tipo de error que te arroja
>
> El fallo lo tienes aqui:
> valor=request.form(id_factura)
> deberia ser:
> valor=request.form("id_factura")
>
> de todas formas en estos casos conviene poner algo de traza (ayuda


cuando
> andamos perdidos con las sql q creo q a todos nos pasa en ocasiones)
>
> strSQL="select * from clientes where clientes.id_factura ="& valor
> response.write "Sentencia sql " & strSQL
> set rssql = conn.Execute(strSQL)
>
> asi sabes "cierto" la sentencia q esta construyendo, y la puedes


comprobar
> contra tu base de datos directamente (en mysql front o cualquier


programa
> q
> te permita meter sentencias a la base de datos y testearlas), a veces
> fallos
> de logica de programa sencillos nos llevan a una sql mal construida, de
> hecho yo suelo poner cosas como:
> <%
> strSQL="select * from clientes where clientes.id_factura ="& valor
> %>
> <!-- Sentencia SQL
> <%=strSQL%>
> <%
> set rssql = conn.Execute(strSQL)
>
>
> Es decir un comentario en javascript con la sentencia o sentencias q voy
> usando, de esta forma ante un fallo en un pc q no sea el de desarrollo
> siempre puedo hacer un ver-> codigo fuente y comprobar que esta pasando
>
> por ultimo aunque no deberia ser el fallo , la sentencia la tienes como
> strSQL="select * from clientes where clientes.id_factura ="& valor
>
> si lo de antes aun te falla prueba con
> strSQL="select * from clientes where id_factura ="& valor
>
> aunque no deberia fallar, y comprueba claro que la conexion esté


apuntando
> donde debe (si es mysql o sql server incluyendo la base de datos)
>
> dani.
> ____________________________
> ""
> escribió en el
> mensaje news:
>> Hola a todos, soy nueva en esto y tengo un pequeño problema con una
> consulta
>> sql:
>> select * from tabla where campo = entero
>> Yo tengo la consulta de la siguiente manera
>> valor=request.form(id_factura)
>> Me he asegurado que valor contenga el valor que tiene que tener pero al
>> hacer la siguiente consulta me da un error.
>> El campo id_factura es de tipo numérico (entero largo)
>> strSQL="select * from clientes where clientes.id_factura ="& valor
>> set rssql = conn.Execute(strSQL)
>>
>> A alguien se le ocurre qué puede ser
>> Gracias de antemano
>> Natalia
>
>


Respuesta Responder a este mensaje
#5 Dani Castillo
09/05/2006 - 16:27 | Informe spam
:-) si en parte si, pero si pueden usar sql injection... pueden sacar los
nombres de las tablas , con lo q no creo q sea tampoco critico poner las
tablas a la vista (tampoco esq interese ahorrarles trabajo jeje pero si que
ayuda y mucho ese tipo de comentarios en js a la hora de solucionar
problemas con apps complejas)

en cualquier caso bueno programo mucho mas en entornos intranet q en web (y
ahi el usuario ya esta validado con lo que es 'de la casa' :-)

Una opcion alternativa seria tener ese tipo de comentarios centralizados en
un include, algo asi como una funcion
dim debug
debug= true ' o false claro :-)
sub comentario (texto)
if debug then
%>
<!--
<%=texto%>
<%
end if
end sub

asi modificando ese fichero include controlamos si hacemos o no debug (o
podemos en un futuro cambiarlo a un log mas 'serio' centralizado en un
fichero de texto por ejemplo y no visible desde fuera)


____________________________
"Nuno Santos" <nunos7[REMOVE]@hotmail.com> escribió en el mensaje
news:
Sólo una cosita más... No es muy buena politica colocar las sentencias de
sql en el código fuente, pues asin cualquier persona te puede ver las
sentencias que se están ejecutando, nombre de tabelas de campos, y es


mucho
más facil hacer SQL Injection, conociendo esos dados.

NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Dani Castillo" <danicastilloarrobahotmail.com> wrote in message
news:
> Hola natalia, ayudaria saber el tipo de error que te arroja
>
> El fallo lo tienes aqui:
> valor=request.form(id_factura)
> deberia ser:
> valor=request.form("id_factura")
>
> de todas formas en estos casos conviene poner algo de traza (ayuda


cuando
> andamos perdidos con las sql q creo q a todos nos pasa en ocasiones)
>
> strSQL="select * from clientes where clientes.id_factura ="& valor
> response.write "Sentencia sql " & strSQL
> set rssql = conn.Execute(strSQL)
>
> asi sabes "cierto" la sentencia q esta construyendo, y la puedes


comprobar
> contra tu base de datos directamente (en mysql front o cualquier


programa
> q
> te permita meter sentencias a la base de datos y testearlas), a veces
> fallos
> de logica de programa sencillos nos llevan a una sql mal construida, de
> hecho yo suelo poner cosas como:
> <%
> strSQL="select * from clientes where clientes.id_factura ="& valor
> %>
> <!-- Sentencia SQL
> <%=strSQL%>
> <%
> set rssql = conn.Execute(strSQL)
>
>
> Es decir un comentario en javascript con la sentencia o sentencias q voy
> usando, de esta forma ante un fallo en un pc q no sea el de desarrollo
> siempre puedo hacer un ver-> codigo fuente y comprobar que esta pasando
>
> por ultimo aunque no deberia ser el fallo , la sentencia la tienes como
> strSQL="select * from clientes where clientes.id_factura ="& valor
>
> si lo de antes aun te falla prueba con
> strSQL="select * from clientes where id_factura ="& valor
>
> aunque no deberia fallar, y comprueba claro que la conexion esté


apuntando
> donde debe (si es mysql o sql server incluyendo la base de datos)
>
> dani.
> ____________________________
> ""
> escribió en el
> mensaje news:
>> Hola a todos, soy nueva en esto y tengo un pequeño problema con una
> consulta
>> sql:
>> select * from tabla where campo = entero
>> Yo tengo la consulta de la siguiente manera
>> valor=request.form(id_factura)
>> Me he asegurado que valor contenga el valor que tiene que tener pero al
>> hacer la siguiente consulta me da un error.
>> El campo id_factura es de tipo numérico (entero largo)
>> strSQL="select * from clientes where clientes.id_factura ="& valor
>> set rssql = conn.Execute(strSQL)
>>
>> A alguien se le ocurre qué puede ser
>> Gracias de antemano
>> Natalia
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida