![]() |
Insert con SP - avanzado
Hola gente. Tengo un diseño de mi base de datos como muestro en la imagen.
Una persona puede ser Cliente, Proveedor, Funcioanario u otros tipos varios. Vamos por el funcionario. Este puede ser o no un comisionista. Cuando llega al nivel de comisionista puede ser creativo (diseñador) o no. Ahora, quiero hacer un Store procedure que inserte a estas personas. Que me conviene mas. Hacer un SP por tipo de persona (cliente, funcionario, proveedor) o hacer un SP por tablas por ejemplo. SP_ALTA_PERSONA : dara de alta la persona y si el tipo indica que es funcionario llamaria a SP_ALTA_FUNCIONARIO y si es comisionista SP_ALTA_COMISIONISTAS y asi sucesivamente. Como podria yo hacer un rollback o algo que deshaga lo ingresado si es que ocurre un error al nivel de comisionista por ejemplo. Es decir ya se habra dado de alta en la tabla persona y en funcionario. ![]() |
Cita:
Cita:
Espero haberme explicado bien. Se que funciona y bien, porque ésta misma estructura yo la utilizo, pero en Delphi, en lugar de con SP (Modelo de persistencia). |
Perfecto. Por lo que parece te la sabes todas neftali jeje.
Y hay forma de ejecutar el commit por programacion ?? o si se completa ya graba y listo? Otra cosita cuando trato de llamar a otro sp desde un SP padre me da un error que estaria mal? quizas no sea la forma adecuada de llamar. Da error en el select y con ; al final tambien. SP_PRUEBA1 no tiene parametros de entrada CREATE PROCEDURE SP_PRUEBA2 AS BEGIN SELECT * FROM SP_PRUEBA1 END |
AH. dice que si no funciona deshago el SP de clase (que me imagino que es un SP normal que llama a los otros).
Como lo deshago tambien. Con un rollback, pero como invoco el rollback? |
Resp
El select que tienes lo debes hacer son un
ese es el problema. Y lo de deshacer no e snecesario ya que esto acurre solo por que va ligado en una misma transaccion. Lo que quiere decir que todo se ejecuta bien o no se ejecuta nada pero no a medias. |
AAH. PERO Y SI MI SP AL QUE LLAMO NO TIENE PARAMETRO DE SALIDA?
O TIENE QUE TENER SI O SI? Pregunto por el select into. Por el into yo asigno a una variable el retorno del SP al que llamo. |
Resp
Solo ejecutas la intruccion sql es todo.
|
La franja horaria es GMT +2. Ahora son las 20:42:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi