Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 25-01-2010
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 23
Ricardojosep Va por buen camino
Aqui va el codigo

Hola Casimiro, Marcos, muchas gracias por su respuesta. Aqui paso a poner el codigo que hace delphi para hacer el grabado en la base, realmente todo se hace por procedimiento almacenado, asique pongo las dos cosas...

Código Delphi [-]
Base.StartTransaction;
Error := False;
Estado := True;
GrabaVenta.ParamByName('ITOTAL').AsFloat := StrToFloat(TotalPesos.Caption);

Try
  GrabaVenta.ExecProc;
Except
  Error := True;
End;

For I := 1 To DetalleVenta.RowCount - 1 Do
  Begin
    GrabaDetalleVenta.ParamByName('IFACTURA').AsInteger := GrabaVenta.ParamByName('Factura').AsInteger;
    GrabaDetalleVenta.ParamByName('IITEM').AsInteger := StrToInt(DetalleVenta.Cells[0, I]);
    GrabaDetalleVenta.ParamByName('IID').AsInteger := StrToInt(DetalleVenta.Cells[1, I]);
    GrabaDetalleVenta.ParamByName('ICANTIDAD').AsInteger := StrToInt(DetalleVenta.Cells[3, I]);
    GrabaDetalleVenta.ParamByName('IPRECIO').AsFloat := StrToFloat(DetalleVenta.Cells[4, I]);

     Try
       GrabaDetalleVenta.ExecProc;
     Except
        Error := True;
     End;
  End;

If Not Error Then
  Base.Commit;
Else
  Base.Rollback;

Ahora bien, los procedimientos almacenados que realizan la grabacion, son:

Grabar_Factura;

Código SQL [-]
=============================================================================
DECLARE VARIABLE fact BIGINT;
BEGIN
  /* Procedure body */
  SELECT gen_id(Ventas_Factura_GEN,1) FROM RDB$DATABASE INTO :fact;
  INSERT INTO ventas VALUES (:fact, 'A', '', current_date, current_time, :itotal);
  factura = :fact;
  SUSPEND;
END
=============================================================================
Parameters:
ITOTAL                            INPUT DOUBLE PRECISION
FACTURA                           OUTPUT BIGINT

y Grabar_Detalle_Factura;

Código SQL [-]
=============================================================================
BEGIN
  /* Procedure body */
  INSERT INTO detalle_venta VALUES (:iFACTURA, :iITEM, :iID, :iCANTIDAD, :iPRECI
O, :iDESCUENTO);
  SUSPEND;
END
=============================================================================
Parameters:
IFACTURA                          INPUT BIGINT
IITEM                             INPUT INTEGER
IID                               INPUT INTEGER
ICANTIDAD                         INPUT INTEGER
IPRECIO                           INPUT DOUBLE PRECISION
IDESCUENTO                        INPUT SMALLINT

Con respecto a lo que me dice Marcos la propiedad CachedUpdates del TZStoreProc esta en false...

Muchas gracias por la ayuda, hasta luego!

Saludos!!

Ricardo
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con master-detail en Access cartmanrules Conexión con bases de datos 0 24-02-2009 19:01:41
Problema con Master/Detail en ReportBuilder agustibaldo Impresión 1 27-09-2007 20:03:30
Incrementar el id del detalle en master/detail... Arturo MySQL 2 07-07-2006 19:24:09
Problema con Edicion En Master-Detail Paradiso Conexión con bases de datos 0 26-01-2005 06:28:28
Problema con ¿master-detail? fortran Tablas planas 3 10-12-2003 09:17:48


La franja horaria es GMT +2. Ahora son las 05:16:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi