A ver como podria ser esta cosa rara.

12/08/2004 - 16:09 por Pablo Fabian Savino | Informe spam
Hola,
o estoy loco o no lo se hacer, pero necesito lo siguiente:

Como hago una funcion que me debuelva el Array de los parametros que pueda
tener un SP para luego usar estos parametros y asignarle valores etc etc.

lo que intento es que al hacer por ej:

mi_function.param1=1
mi_function.param2='hola'

me explico, claro,esta funcion deberia poder digamos...recrear el array
de parametros para cada SP diferente!

Yo me hice una DLL que maneja todo lo que es conexiones y DataReader,
DataSets, SqlCommand.etc
entonces creanme que en mis aplicaciones ya no mas hago un dim Ds as DataSet
porque a mi DLL le digo que quiero los datos de
tal tabla y me trae todo todo y ya, tambien puede ejecutar SP, pero ahora
estoy mas ambicioso!!! jejejej, quiero poder hacer lo explicado arriba para
solo usar una funcion que sirva para cualquier SP que este en el server.

Bueno, estoy loco o no lo se hacer?

Sugerencias, ejemplitos de arrays debueltos por funciones...etc...Se
agradecen!!!!!!!!!!!!

Salute!!!

Preguntas similare

Leer las respuestas

#1 Tristan
12/08/2004 - 16:28 | Informe spam
Espero haberte entendido. Esto sería una función que devuelva un array de
objetos SqlParameter:

Function GetParametros() As SqlParameter()
Dim parametros(2) As SqlParameter
parametros(0) = New SqlParameter("Parametro0", "valor0")
parametros(1) = New SqlParameter("Parametro1", "valor1")
parametros(2) = New SqlParameter("Parametro2", "valor2")
Return parametros
End Function

Y se utilizaría:

Dim parametros() As SqlParameter = GetParametros()
parametros(0)...

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#2 Pablo Fabian Savino
12/08/2004 - 16:42 | Informe spam
Hola tristan,
mas o menos por ahi andamos, el tema es que como obtengo la cantidad de
parametros que hay en el SP para luego crearlos como vos me indicas.

La idea es :

1-Detectar cuantos parametros tiene el SP (no importa el typo de datos, esto
lo se yo)
2-Crear los parametros(n) como me indicas
3-Usarlos, asignarle valores para luego ejecutar ese SP asi hace lo que
tenga que hacer, claro!

Me entendes mejor ahora?
Lo que me enviaste me sirve, pero no se como saber cuantos parametros tiene
el SP

Salute!


"Tristan" wrote in message
news:
Espero haberte entendido. Esto sería una función que devuelva un array de
objetos SqlParameter:

Function GetParametros() As SqlParameter()
Dim parametros(2) As SqlParameter
parametros(0) = New SqlParameter("Parametro0", "valor0")
parametros(1) = New SqlParameter("Parametro1", "valor1")
parametros(2) = New SqlParameter("Parametro2", "valor2")
Return parametros
End Function

Y se utilizaría:

Dim parametros() As SqlParameter = GetParametros()
parametros(0)...

Juan Carlos Badiola
MVP - C#


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
12/08/2004 - 17:40 | Informe spam
el tema es que como obtengo la cantidad
de parametros que hay en el SP para luego crearlos como vos me
indicas.



Puedes usar SqlCommandBuilder.DeriveParameters. DeriveParameters crea todos
los SqlParameters segun esten definidos en el SP (nombre, tipo, tamaño,
etc.) y los agrega al SqlCommand que le pases. Lo unico que tienes que hacer
luego es colocar los valores en los parametros.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Pablo Fabian Savino
12/08/2004 - 18:32 | Informe spam
Hola Eduardo,

se me ocurrio que podria hacer algo asi porque si al arrastrar y soltar un
SP desde el Server Explorer de Net, este me crea un sqlcommad con los
parametros del SP, entonces pense que por codigo tambien habria alguna
manera de saber cuantos parametros tiene tal SP para luego yo trabajarlos.

En fin , por ahi biene la ideaque se te ocurre?

Saludos

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> wrote in message
news:
> el tema es que como obtengo la cantidad
> de parametros que hay en el SP para luego crearlos como vos me
> indicas.

Puedes usar SqlCommandBuilder.DeriveParameters. DeriveParameters crea


todos
los SqlParameters segun esten definidos en el SP (nombre, tipo, tamaño,
etc.) y los agrega al SqlCommand que le pases. Lo unico que tienes que


hacer
luego es colocar los valores en los parametros.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
12/08/2004 - 19:09 | Informe spam
se me ocurrio que podria hacer algo asi porque si al arrastrar y
soltar un SP desde el Server Explorer de Net, este me crea un
sqlcommad con los parametros del SP, entonces pense que por codigo
tambien habria alguna manera de saber cuantos parametros tiene tal SP
para luego yo trabajarlos.



Pero eso es justamente lo que hace SqlCommandBuilder.DeriveParameters! Creas
un commando que apunte al SP y lo pasas a DeriveParameters y este te inserta
en la coleccion Parameters del comando los parametros del SP. Yo uso algo
asi:

Public Sub EjecutaSP( _
ByVal procedure As String, _
ByVal ParamArray params() As Object)

' Creo el comando
Dim cmd As New SqlCommand(procedure, cnx)
cmd.CommandType = CommandType.StoredProcedure

Try

' Abro la conexion
cnx.Open()

' Cargo los parametros del SP
SqlCommandBuilder.DeriveParameters(cmd)

' Agrego los valores pasados a la funcion
For i As Integer = 1 To params.Length
cmd.Parameters.Item(i).Value = params(i - 1)
Next

' Ejecuto el SP
cmd.ExecuteNonQuery

Catch ex As Exception

Throw ex

Finally

cnx.Close()

End Try

End Sub

Al metodo le pasas el nombre del SP y los parametros en el orden en que
estan definidos en el SP y el metodo lo ejecuta. De la misma forma haces
otros para que devuelvan un datatable, datareader, etc.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida