Ejecutar un procedimiento almacenado desde VB

29/04/2004 - 21:04 por Jhon Jairo Espitia | Informe spam
Me dicen que exite un forma de ejecutar un procedimiento
almacenado desde visual basic y pasar los parametros
para generar un reporte

Preguntas similare

Leer las respuestas

#6 Maxi
30/04/2004 - 17:15 | Informe spam
Hola, es verdad todo lo que dicen los chicos!! pero... siempre se puede
buscar la vuelta no?

Hay veces que no nos queda otra que usar Sql_Dinamico no? entonces lo que yo
hago en esas muy pero muy pocas Exepciones, entonces?

Bueno si haces un control de palabras en los String, podrias disminuir los
riesgos, por ej podrias poner que:

DROP
Delete

o cosas asi no sean validas y marques un error, claro no es 100% seguro es
verdad, pero que cosa es 100% segura? ;-)

Bue es solo un metodo nomas, lo que hay que tratar es de evitar el uso de
sql_dinamico y estas cosas :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lord Rogers" escribió en el mensaje
news:%
Toda la azón y súper interesante los artículos puestos más arriba

Saludos,

Lord Rogers
Desde el último lugar del mundo...
"ulises" escribió en el mensaje
news:688001c42ec1$47d0d250$
Prueba esto :

create table prueba ( valor char(1) )
go
create procedure obtieneprueba
@campo char(1)
as
select * from prueba where valor > @campo

luego desde VB :

Sub Main()

Dim cadena As String
Dim qry As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=sqloledb;Data Source> (local);Initial Catalog=test;User Id=sa;Password=password;"
cn.Open
Set rs = New ADODB.Recordset
cadena = "1'; drop table prueba ; select '"
qry = "exec obtieneprueba '" & cadena & "'"
rs.Open qry, cn
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

verás que ese proceso elimina la tabla.

Saludos,
Ulises


>Todo va a depender del código dentro del Stored
Procedure, ya que con lo que puse, estoy ejecutando un SP
con la variable que le paso. Si en el SP tengo un update,
no va a pasar nada, verdad?, si tengo un selec igual?.
>O sea, el usuario jamás me va a poder ejecutar una
sentencia dañina en los SP que uno crea.
>
>Saludos,
>
>Lord Rogers







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
Respuesta Responder a este mensaje
#7 Lord Rogers
30/04/2004 - 17:22 | Informe spam
Lamentablemente tengo 10 módulos de sistemas ya creados, y realmente estar
cambiando todo el código creo que es un pco complicado. Concuerdo con Maxi
en poner palabras claves de búsqueda dentro de los textbox, pero confío en
mis usuarios (manejo pc sólo nivel usuario) en que no tienen IDEA de cómo
hacer explotar la Base de Datos.
Pero el consejo está muy bueno, y de apoco se irá implementando esos sitemas
de seguridad.

Saludos,

Lord Rogers
Desde el último lugar del mundo...
"Maxi" escribió en el mensaje
news:
Hola, es verdad todo lo que dicen los chicos!! pero... siempre se puede
buscar la vuelta no?

Hay veces que no nos queda otra que usar Sql_Dinamico no? entonces lo que


yo
hago en esas muy pero muy pocas Exepciones, entonces?

Bueno si haces un control de palabras en los String, podrias disminuir los
riesgos, por ej podrias poner que:

DROP
Delete

o cosas asi no sean validas y marques un error, claro no es 100% seguro es
verdad, pero que cosa es 100% segura? ;-)

Bue es solo un metodo nomas, lo que hay que tratar es de evitar el uso de
sql_dinamico y estas cosas :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lord Rogers" escribió en el mensaje
news:%
> Toda la azón y súper interesante los artículos puestos más arriba
>
> Saludos,
>
> Lord Rogers
> Desde el último lugar del mundo...
> "ulises" escribió en el mensaje
> news:688001c42ec1$47d0d250$
> Prueba esto :
>
> create table prueba ( valor char(1) )
> go
> create procedure obtieneprueba
> @campo char(1)
> as
> select * from prueba where valor > @campo
>
> luego desde VB :
>
> Sub Main()
>
> Dim cadena As String
> Dim qry As String
> Dim cn As ADODB.Connection
> Dim rs As ADODB.Recordset
>
> Set cn = New ADODB.Connection
> cn.ConnectionString = "Provider=sqloledb;Data Source> > (local);Initial Catalog=test;User Id=sa;Password=password;"
> cn.Open
> Set rs = New ADODB.Recordset
> cadena = "1'; drop table prueba ; select '"
> qry = "exec obtieneprueba '" & cadena & "'"
> rs.Open qry, cn
> rs.Close
> Set rs = Nothing
> cn.Close
> Set cn = Nothing
> End Sub
>
> verás que ese proceso elimina la tabla.
>
> Saludos,
> Ulises
>
>
> >Todo va a depender del código dentro del Stored
> Procedure, ya que con lo que puse, estoy ejecutando un SP
> con la variable que le paso. Si en el SP tengo un update,
> no va a pasar nada, verdad?, si tengo un selec igual?.
> >O sea, el usuario jamás me va a poder ejecutar una
> sentencia dañina en los SP que uno crea.
> >
> >Saludos,
> >
> >Lord Rogers
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004


Respuesta Responder a este mensaje
#8 Maxi
30/04/2004 - 17:38 | Informe spam
Hola, gracias por coincidir pero yo hay en algo que no coincido contigo ;-)

pero confío en
mis usuarios (manejo pc sólo nivel usuario) en que no tienen IDEA de cómo
hacer explotar la Base de Datos.




JAMAS pero JAMAS confies en los usuarios, por mas que sean buenas personas o
lo que fuere, pero usuarios en un sistema hay muchos, vos tambien sos una
usuaria del mismo y quizas la gente de sistemas meta la pata, pero ojo es
solo recomendacion nomas, no es para polemica ni mucho menos :-)

Suerte



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lord Rogers" escribió en el mensaje
news:
Lamentablemente tengo 10 módulos de sistemas ya creados, y realmente estar
cambiando todo el código creo que es un pco complicado. Concuerdo con


Maxi
en poner palabras claves de búsqueda dentro de los textbox, pero confío en
mis usuarios (manejo pc sólo nivel usuario) en que no tienen IDEA de cómo
hacer explotar la Base de Datos.
Pero el consejo está muy bueno, y de apoco se irá implementando esos


sitemas
de seguridad.

Saludos,

Lord Rogers
Desde el último lugar del mundo...
"Maxi" escribió en el mensaje
news:
> Hola, es verdad todo lo que dicen los chicos!! pero... siempre se puede
> buscar la vuelta no?
>
> Hay veces que no nos queda otra que usar Sql_Dinamico no? entonces lo


que
yo
> hago en esas muy pero muy pocas Exepciones, entonces?
>
> Bueno si haces un control de palabras en los String, podrias disminuir


los
> riesgos, por ej podrias poner que:
>
> DROP
> Delete
>
> o cosas asi no sean validas y marques un error, claro no es 100% seguro


es
> verdad, pero que cosa es 100% segura? ;-)
>
> Bue es solo un metodo nomas, lo que hay que tratar es de evitar el uso


de
> sql_dinamico y estas cosas :-)
>
>
> Salu2
> Maxi
> Buenos Aires - Argentina
> Desarrollador Microsoft 3 Estrellas .NET
> Nunca consideres el estudio como una obligación sino como
> una oportunidad para penetrar en el bello y maravillosos
> mundo del saber.
> - Albert Einstein
>
>
>
> "Lord Rogers" escribió en el mensaje
> news:%
> > Toda la azón y súper interesante los artículos puestos más arriba
> >
> > Saludos,
> >
> > Lord Rogers
> > Desde el último lugar del mundo...
> > "ulises" escribió en el mensaje
> > news:688001c42ec1$47d0d250$
> > Prueba esto :
> >
> > create table prueba ( valor char(1) )
> > go
> > create procedure obtieneprueba
> > @campo char(1)
> > as
> > select * from prueba where valor > @campo
> >
> > luego desde VB :
> >
> > Sub Main()
> >
> > Dim cadena As String
> > Dim qry As String
> > Dim cn As ADODB.Connection
> > Dim rs As ADODB.Recordset
> >
> > Set cn = New ADODB.Connection
> > cn.ConnectionString = "Provider=sqloledb;Data Source> > > (local);Initial Catalog=test;User Id=sa;Password=password;"
> > cn.Open
> > Set rs = New ADODB.Recordset
> > cadena = "1'; drop table prueba ; select '"
> > qry = "exec obtieneprueba '" & cadena & "'"
> > rs.Open qry, cn
> > rs.Close
> > Set rs = Nothing
> > cn.Close
> > Set cn = Nothing
> > End Sub
> >
> > verás que ese proceso elimina la tabla.
> >
> > Saludos,
> > Ulises
> >
> >
> > >Todo va a depender del código dentro del Stored
> > Procedure, ya que con lo que puse, estoy ejecutando un SP
> > con la variable que le paso. Si en el SP tengo un update,
> > no va a pasar nada, verdad?, si tengo un selec igual?.
> > >O sea, el usuario jamás me va a poder ejecutar una
> > sentencia dañina en los SP que uno crea.
> > >
> > >Saludos,
> > >
> > >Lord Rogers
> >
> >
>
>
>
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004
Respuesta Responder a este mensaje
#9 Lord Rogers
19/05/2004 - 18:46 | Informe spam
Ahora otra consulta. ¿Cómo se podría dejar la ecatombe con ese tipo de
consultas si no se tiene conocimiento del nombre de la base, tablas, etc?
Es decir, si uno de ustedes me pasa un módulo ¿qué debería ingresar para
borrar la base, drop tablas, etc?


Saludos,

Lord Rogers
Desde el último lugar del mundo...
"Maxi" escribió en el mensaje
news:
Hola, es verdad todo lo que dicen los chicos!! pero... siempre se puede
buscar la vuelta no?

Hay veces que no nos queda otra que usar Sql_Dinamico no? entonces lo que


yo
hago en esas muy pero muy pocas Exepciones, entonces?

Bueno si haces un control de palabras en los String, podrias disminuir los
riesgos, por ej podrias poner que:

DROP
Delete

o cosas asi no sean validas y marques un error, claro no es 100% seguro es
verdad, pero que cosa es 100% segura? ;-)

Bue es solo un metodo nomas, lo que hay que tratar es de evitar el uso de
sql_dinamico y estas cosas :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Lord Rogers" escribió en el mensaje
news:%
> Toda la azón y súper interesante los artículos puestos más arriba
>
> Saludos,
>
> Lord Rogers
> Desde el último lugar del mundo...
> "ulises" escribió en el mensaje
> news:688001c42ec1$47d0d250$
> Prueba esto :
>
> create table prueba ( valor char(1) )
> go
> create procedure obtieneprueba
> @campo char(1)
> as
> select * from prueba where valor > @campo
>
> luego desde VB :
>
> Sub Main()
>
> Dim cadena As String
> Dim qry As String
> Dim cn As ADODB.Connection
> Dim rs As ADODB.Recordset
>
> Set cn = New ADODB.Connection
> cn.ConnectionString = "Provider=sqloledb;Data Source> > (local);Initial Catalog=test;User Id=sa;Password=password;"
> cn.Open
> Set rs = New ADODB.Recordset
> cadena = "1'; drop table prueba ; select '"
> qry = "exec obtieneprueba '" & cadena & "'"
> rs.Open qry, cn
> rs.Close
> Set rs = Nothing
> cn.Close
> Set cn = Nothing
> End Sub
>
> verás que ese proceso elimina la tabla.
>
> Saludos,
> Ulises
>
>
> >Todo va a depender del código dentro del Stored
> Procedure, ya que con lo que puse, estoy ejecutando un SP
> con la variable que le paso. Si en el SP tengo un update,
> no va a pasar nada, verdad?, si tengo un selec igual?.
> >O sea, el usuario jamás me va a poder ejecutar una
> sentencia dañina en los SP que uno crea.
> >
> >Saludos,
> >
> >Lord Rogers
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.661 / Virus Database: 424 - Release Date: 19/04/2004


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida