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

Procedimiento almacenado para insertar

Estas en el tema de Procedimiento almacenado para insertar en el foro de ASPX (.net) en Foros del Web. Hola, Tengo el siguiente procedimiento almacenado para realizar la inserción de datos en una de mis pantallas, pero me gustaría ver si puedo utilizar el ...
  #1 (permalink)  
Antiguo 12/04/2010, 12:26
 
Fecha de Ingreso: marzo-2010
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Mensaje Procedimiento almacenado para insertar

Hola,


Tengo el siguiente procedimiento almacenado para realizar la inserción de datos en una de mis pantallas, pero me gustaría ver si puedo utilizar el mismo código para mis demás pantallas aunque claramente son otros campos ahí es a donde me surge la confusión tengo que crear un sp para cada pantalla??? o puedo usar este para todas y si es así como lo integro??? .

De antemano muuuchas gracias.


CREATE PROCEDURE [dbo].[sp_Insertar]
@indDescripcion varchar (max),
@indFechaHora datetime,
@msg varchar (max)

AS
BEGIN TRAN Agregar

SET NOCOUNT ON;

-- Insert statements for procedure here

BEGIN Try

INSERT INTO servicio.inicdente (Descripcion, Fecha, Hora) VALUES (@indDescripcion,@indFechaHora,@indFechaHora)
SET @msg = ' El registro fue almacenado exitosamente.'

COMMIT TRAN Agregar

End Try

BEGIN Catch

SET @msg= 'Ocurrio un Erro:' + ERROR_MESSAGE()+ 'en la línea'+ CONVERT (NVARCHAR (255); ERROR_LINE() ) + '.'
Roollback TRAN Agregar

End Catch
END
GO
  #2 (permalink)  
Antiguo 12/04/2010, 13:15
 
Fecha de Ingreso: enero-2008
Ubicación: Santiago
Mensajes: 49
Antigüedad: 16 años, 9 meses
Puntos: 4
Respuesta: Procedimiento almacenado para insertar

No entiendo muy bien tu pregunta, pero si son campos distintos, de todas maneras tienes que crear diferentes procedimientos almacenados, ya que los parámetros que recibirá un procedimiento no serán los mismos para todos.

Espero responda a tu pregunta

Saludos
  #3 (permalink)  
Antiguo 12/04/2010, 14:51
 
Fecha de Ingreso: febrero-2010
Ubicación: Guayaquil - Ecuador
Mensajes: 350
Antigüedad: 14 años, 8 meses
Puntos: 13
Respuesta: Procedimiento almacenado para insertar

Hola como estas, te dare unos cuantos consejos que espero te sean de utilidad:
1.- Tu puedes crear un codigo base para todas tus pantallas y reusarlo esta bien, pero primero tienes que tener bien definidas las funcionalidades de tu aplicacion para poder saber donde puedes aplicar este mismo codigo para diferentes procesos. Asi mismo tener bien definidas tus capas de negocios y de datos para realizar todas las validaciones necesarias para el correcto funcionamiento de tu codigo. Si vas a usar mas validaciones dentro de tu store realizar otros stores o buen funciones para dichas validaciones.
2.- Te recomiendo que manejes la transaccionalidad por medio de tu frontal por medio de codigo simple y sencillo, al tener el try-catch afuera obtendras mayor variedad de errores controlados no solo de SQL sino del mismo .NET, ya que tendras que validar internamente el store y volver a validar la captura del error o el error interno de codigo y rpesentarlo en pantalla.
3.- A tu pregunta, puedes manejar un parametro @proceso varchar(1) y lo alimentas con 'I' para ingreso de datos, 'M' para modificar, 'C' consultas, etc. y a tus parametros les pones:
@indDescripcion varchar (max) = '',
@indFechaHora datetime = fecha_por_defecto,
@msg varchar (max) = ''
esto para darles valores por defecto a los mismos y no tengas problemas al momento de realizar otro proceso y seria algo asi:

if proceso = 'I'
begin
proceso
end

if proceso = 'C'
begin
proceso
end

etc, etc, etc... yo siempre lo uso asi con buenos resultados.
4.- No uses varchar(max), siempre especifica un valor para tu varchar ya que eso hace separacion de memoria en disco para la base y para el proceso y por rendimiento es un desperdicio ya que no siempre usaras el max. Usa valores proporcionales como por ejemplo para descripcion y mensaje 100.

Espero haberte ayudado
  #4 (permalink)  
Antiguo 16/04/2010, 22:48
Avatar de jsrc1990  
Fecha de Ingreso: enero-2009
Mensajes: 95
Antigüedad: 15 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Procedimiento almacenado para insertar

Lo tenia guardado hasta hoy ya que en la semana tengo problemas de envio:

Puedes contruir la Instruccion Insert desde vb segun tu necesidad (en las diferentes pantallas, diferentes campos) en un string, ejecuta el procedure desde vb y pasas como parametro la cadena ya descrita.

Código SQL:
Ver original
  1. CREATE Proc Insertar
  2. @TuInsert VARCHAR(500),
  3. AS
  4. EXEC(@TuInsert)

Lo cual el parametro @TuInsert contendra algo como:

Código SQL:
Ver original
  1. INSERT INTO TuTabla VALUES("TuValor1","TuValor2","TuValor3")

Segun la pantalla en donde estes, lo construyes a tu manera. Es para hacerlo general ya que tu lo pides, pero para mi forma mas comoda de trabajar, Creo un Procedimiento por Pantalla (Modulo), paso un parametro llamado @Opcion, la cual contiene un valor ya sea, Registrar, Editar, Eliminar, Vaciar etc..., y en el procedimiento hago:

Código SQL:
Ver original
  1. AS
  2. IF @Opcion='Registrar'
  3. --Mi Insert
  4. ELSE
  5. IF @Opcion='Editar'
  6. --Mi Update
  7. ELSE
  8. IF @Opcion='Eliminar'
  9. --Mi Delete
  10. ELSE
  11. --Mas Carreta
  12. .
  13. .
  14. .

Espero haberte ayudado, asi sea tarde pero como dice el dicho mas vale tarde que nunca, cuentanos...

Jsrc1990
__________________
Si crees que te fuí de gran ayuda y que resolví tu duda regalame un poco de karma o invitame a una pizza :)

Etiquetas: procedimiento, aspx, almacenar
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 14:10.