FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como hacer un commit dentro de un procedimiento almacenado
Ante todo buenas tardes.
Mi problema es el siguiente: Tengo un procedimiento almacenado en el cual creo una Factura, el identificador de factura se lo paso a otro procedimiento almacenado para que me cree el recibo correspondiente, pero en éste procedimiento cuando hago un Select con el identificador pasado a la tabla de facturas no me encuentra nada porque aún la factura no existe. ¿Como puedo hacer para pegar la factura antes de intentar crear los recibos? No sé si mi habré explicado bien (espero que sí) Gracias |
#2
|
||||
|
||||
Hola:
Antes de pasar ese valor, haces un insert con todos los datos de la factura y luego pasas ese parámetro al otro procedimiento, los commit conviene controlarlos desde la aplicación. Hasta Luego -
__________________
No todo es como parece ser... |
#3
|
|||
|
|||
Gracias Lucas por responder.
Eso es exactamente lo que hago, primero el insert de la factura y después llamo al otro procedimiento. Todo lo hago en un procedimiento almacenado para no hacer tantas llamadas a la base de datos. Te voy a poner un trozo de código para que lo veas: Código:
Insert into FAC_CLI (ID_FAC_CLI, NFACTURA, FECHA, ID_CLI, CODIGO_FOR_PAG, ID_ALM, IMPORTE, DESCUENTO, ID_EJE) Código:
execute procedure PasarRecibos :sId, :eEmpresa; Código:
Select FAC_CLI.IMPORTE, FAC_CLI.FECHA, REC_CLI.DIA_PAGO_MES, REC_CLI.ID_BAN_CLI, REC_CLI.CODIGO_PRE_REC, REC_CLI.CODIGO_ORD_REC, FOR_PAG.PRIVENCIMIENTO, FOR_PAG.NVENCIMIENTO, FOR_PAG.INTERVALO, FOR_PAG.RECIBO from FAC_CLI Código:
inner join FOR_PAG on FOR_PAG.CODIGO = FAC_CLI.CODIGO_FOR_PAG Código:
inner join REC_CLI on REC_CLI.ID_CLI = FAC_CLI.ID_CLI Código:
where FAC_CLI.ID_FAC_CLI = :sId Código:
into :vIMPORTE, :vFECHA, :vDIA_PAGO_MES, :vID_BAN_CLI, :vCODIGO_PRE_REC, :vCODIGO_ORD_REC, :vPRIVENCIMIENTO, :vNVENCIMIENTO, :vINTERVALO, :vRECIBO; Código:
If (NRECIBO = 1) then begin Si me pueden ayudar, gracias. Última edición por jachguate fecha: 03-11-2005 a las 18:05:58. Razón: Quitar las líneas kilometricas de la etiqueta code, para evitar el scroll horizontal |
#4
|
||||
|
||||
Cita:
Revisa bien la consulta. Te recomiendo que llenes algunos datos en las tablas y juegues con los SQL, en defitiva debes armar bien la consulta Hasta Luego -
__________________
No todo es como parece ser... |
#5
|
|||
|
|||
Gracias por responder.
La consulta está bien, porque está probada y demás. Intentaré explicarme un poco mejor. Creo que cuando hago esa consulta no está pegado todavía el insert que se hizo anteriormente, o se hace automáticamente cuando están en procedimientos almacenados? Por eso la pregunta de como hacer un commit dentro de un procedimiento almacenado (pegarlo físicamente para que la consulta me encuentre algo). No sé si me explico, espero que sí y también espero que me echeis un cable, plis. Gracias |
#6
|
||||
|
||||
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
Gracias por responder.
Seguiré mirandolo y ya os contaré. Mil gracias. |
|
|
|