Título: Para que los Store Procedures? Publicado por: HadesDark en 29 Julio 2008, 18:16 pm Hola, hace poco empecé a programar en C# usando como gestor de BD MSSQL Server, pero tengo una duda, como se crea un store procedure? y para que sirve realmente?,he buscado por internet pero no me queda realmente claro como crearlo (he visto demasiadas formas y no me queda clara la cosa) y porque/cuando hacer uso de un Store procedure, agradezco la ayuda que me puedan brindar.
Título: Re: Para que los Store Procedures? Publicado por: Hadess_inf en 30 Julio 2008, 05:08 am Hola los procedure son como su nombre lo indica procedimientos, no hace falta decir que los procedimientos los creamos en el SQL Server y los llamamos ya sea desde el mismo servidor como desde el lenguaje de programacion ( en este caso VB ). Segun mi experiencia son muchas las ventajas que nos dan estos procedures, citare 2 por el momento.
1) Evita generar demasiado codigo en VB, basta con crear nuestro procedure en SQL y llamarlo en VB. 2) Imagina que necesitas insertar 1000 registros. Si vas insertando esos registros desde tu VB tomara un tiempo considerable porque tendrias que crear 1 sqlcommand por registro ademas que en algunos casos tendras que enviar parametros como son nombres..apellidos..etc..., en cambio si usas un procedimiento que haga todo ese trabajo los registros se insertaran ya no desde VB sino en el mismo servidor SQL, la idea de esto es solamente llamar al procedimiento y ejecutarlo. Se entendio ?¿? :huh: :huh: :huh: Título: Re: Para que los Store Procedures? Publicado por: HadesDark en 30 Julio 2008, 16:21 pm Muchas gracias por la explicación, me quedo claro su uso, pero otra cosita, de casualidad tienes un ejemplo de un store procedure bien formado? es que he visto varios ejemplos donde lo hacen de diferentes formas :S. Gracias de nuevo.
Título: Re: Para que los Store Procedures? Publicado por: Hadess_inf en 30 Julio 2008, 18:16 pm Un procedimiento que inserte un registro:
Citar En SQL Create procedure sp_inserta @nom varchar(20), @ape varchar(20), telf varchar(9) as insert into empleado values (@nom,@ape,@telf) go Citar En Net dim par as sqlparameter 'lo usamos para enviar los parametros en este caso nom,ape,telf. dim cmd as new sqlcommand("sp_inserta",con) 'desde aqui invocaras la comsulta cmd.commandtype=Data.CommandType.StoredProcedure 'le dices que es un procedimiento almacenado 'ahora procedemos a agregar o enviar los parametros, aqui lo puedes hacer de dos formas: 1) Forma corta cmd.Parameters.AddWithValue("@nom",textbox1.text) cmd.Parameters.AddWithValue("@ape",textbox2.text) cmd.Parameters.AddWithValue("@telf",textbox3.text) 2) Forma larga :: usamos sqlparameter par = new sqlparameter ("@nom",Data.SqlDbType.VarChar,20) par.value = textbox1.text cmd.parameters.add ( par ) par = new sqlparameter ("@ape",Data.SqlDbType.VarChar,20) par.value = textbox2.text cmd.parameters.add ( par ) par = new sqlparameter ("@telf",Data.SqlDbType.VarChar,20) par.value = textbox3.text cmd.parameters.add ( par ) 'y finalmente ejecutamos el procedimiento cmd.executenonquery() Espero sirva. Un Saludo. |