Foros del Web » Programando para Internet » ASPX (.net) »

parametros dinamicos command

Estas en el tema de parametros dinamicos command en el foro de ASPX (.net) en Foros del Web. Alguien tiene una idea de como crear parametros dinamicos me refiero al objeto command donde se agregan los parametros que se utilizan para ejecutar los ...
  #1 (permalink)  
Antiguo 14/05/2006, 18:04
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 20 años, 3 meses
Puntos: 0
parametros dinamicos command

Alguien tiene una idea de como crear parametros dinamicos me refiero al objeto command donde se agregan los parametros que se utilizan para ejecutar los procedimientos almacenados necesito esot por que los parametros en los procedimientos pueden cambiar y no se quiere cambiar el codigo de ado.net
gracias
  #2 (permalink)  
Antiguo 15/05/2006, 08:45
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
Si puedes explicar mas tu pregunta, entiendo que quieres cambiar constantemente tu procedimiento almacenado, pero en determinado momento quieres enviarle por ejemplo 10 parametros o en otro 5, etc o diferentes parametros, imagino que es para poder cambiar el procedimiento almacenado....

He trabajado con algo similar, atravez de xsd y xml.

Pero espero que expliques mejor tu pregunta.
  #3 (permalink)  
Antiguo 15/05/2006, 08:56
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
mmm.. tampoco entiendo bien lo que pretendes, porque obviamente un SP tiene parámetros definidos, cual sería el objeto de hacer parámetros dinámicos.. explica mejor lo que quieres hacer para poderte ayudar.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 15/05/2006, 18:59
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 20 años, 3 meses
Puntos: 0
Exactamente eso es poder cambiar los parametros desde un archivo de configuracion xml para no tener que tocar el codigo de .net .
  #5 (permalink)  
Antiguo 16/05/2006, 08:59
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
Te comentaba que yo habia hecho algo parecido, a lo mejor te es util..

Las funciones y su resultado los maneje como xml.
Primero hice un xsd en donde defini la peticion, el cual me sirve para validar el xml de entrada, todos los xml y xsd los defini como dataset aunque creo que no es necesario.

el xml por ejemplo tiene la siguiente estructura

<companies> --Nombre de la transacion
<CompanyByID> -- Nombre de la funcion
<ID>356</ID> -- elementos o parametros
<CompanyByID>
</companies>

al enviar este documento xml a la llamada de funcion se hace lo sig.
primero el xml lo pase como XmlElement

ByVal Request As XmlElement
Request.Name 'Es el nombre de la transaccion
Request.FirstChild.Name 'es el nombre de la funcion

Con estos dos datos leo el xsd correspondiente el cual lo estructure con carpetas de la sig forma
Nombre de la transaccion
Nombre de la funcion.xsd

en este caso
Companies/CompanyByID.xsd

si no encuentro el xsd regreso un xml de error, ademas defini una lista de errores con un numero y detalles del error segun sea el caso, si fue por un try entonce en el detalle envie el ex.tostring
+- el xml de error
<Site>
<Error>
<CodeError>704</CodeError>
<English>Missing customer data. 'Customer' table</English>
<Spanish>Faltan datos del cliente. 'Customer' table</Spanish>
<Details/>
</Error>
<Site>


Me apolle en un dataset para leer el xml de errores y filtrar el que necesito.
despues lo que sige es
Validar el esquema

si todo esta bien, entonces obtengo el nombre del procedimiento y leo los parametros
por ejemplo el nombre de mi procedimiento lo creo asi

dim spName as string="sp{0}_get{1}"
spName = String.Format(spName, nameTransacction, nameFunction)

los parametros

Dim parameters As NameValueCollection
Dim xmlParameters As XmlNode = Request.FirstChild
If Not xmlParameters Is Nothing Then
parameters = New NameValueCollection
For Each Node As XmlNode In xmlParameters
parameters.Add(Node.Name, Node.InnerText)
Next
End If

Para crear la llamada al procedimiento

Dim sqlDa As SqlDataAdapter = New SqlDataAdapter(spName, AppSettings("Connection"))

With sqlDa.SelectCommand
.CommandType = CommandType.StoredProcedure
For i As Integer = 0 To spParameters.Count - 1
Dim sqlParam As New SqlParameter("@" & spParameters.GetKey(i), spParameters.GetValues(i)(0))
.Parameters.Add(sqlParam)
Next
End With

Y es todo...

Como puedes ver con solo llamar a una funcion puedo invocar varios procedimientos almacenados no solo uno y solo cambio mi xsd o creo uno nuevo y un xml con un respectivo procedimiento sin tener que cambiar el codigo.

Espero te sea util.
Un saludo.
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 04:22.