Esau
31-03-2008, 23:26:24
Hola Amigos..
tengo una duda e intente buscar información en la red y en los foros pero no encontre nada.
Estoy haciendo una aplicación de tres capas en Delphi 7 con SQL Server 2000
tengo dos tablas una maestro y un detalle.
la capa intermedia tengo una ADOConection con sus propiedades y valores luego tengo un ADOQuery son la siguiente Sentencia
Select * from Cab_Factura where Numero = :Numero
luego tengo otro ADOQuery con la Siguiente Sentencia
Select * from Det_Factura where Numero = :numero order by Item
la primera consulta es para la cabecera de la factura y la segunda consulta es para el detalle de la factura.
luego tengo dos TdataSetprovider cada uno apuntando a su respectivo ADOQuery.
Hasta Aquí tengo la capa intermedia.
en la capa cliente tengo un formulario con datos de la cabecera y del detalle
tambien tengo dos TClientdataSet, uno para la cabecera y otro para el detalle.
tengo un boton Guardar en donde pongo esta sentencia
procedure TForm1.Button1Click(Sender: TObject);
begin
Cabecera.ApplyUpdates(0);
Detalle.ApplyUpdates(0);
end;
// graba los cambios de la cabecera y el detalle de la factura
mi problema es el siguiente:
¿Como hago para encerrar en una transacción ambos ApplyUpdates?
lo que sucede es que no quisiera que solo se grabe la cabecera y si el detalle posee un error ninguno de los datos deben confirmarse.
Gracias de antemano por la Ayuda.
tengo una duda e intente buscar información en la red y en los foros pero no encontre nada.
Estoy haciendo una aplicación de tres capas en Delphi 7 con SQL Server 2000
tengo dos tablas una maestro y un detalle.
la capa intermedia tengo una ADOConection con sus propiedades y valores luego tengo un ADOQuery son la siguiente Sentencia
Select * from Cab_Factura where Numero = :Numero
luego tengo otro ADOQuery con la Siguiente Sentencia
Select * from Det_Factura where Numero = :numero order by Item
la primera consulta es para la cabecera de la factura y la segunda consulta es para el detalle de la factura.
luego tengo dos TdataSetprovider cada uno apuntando a su respectivo ADOQuery.
Hasta Aquí tengo la capa intermedia.
en la capa cliente tengo un formulario con datos de la cabecera y del detalle
tambien tengo dos TClientdataSet, uno para la cabecera y otro para el detalle.
tengo un boton Guardar en donde pongo esta sentencia
procedure TForm1.Button1Click(Sender: TObject);
begin
Cabecera.ApplyUpdates(0);
Detalle.ApplyUpdates(0);
end;
// graba los cambios de la cabecera y el detalle de la factura
mi problema es el siguiente:
¿Como hago para encerrar en una transacción ambos ApplyUpdates?
lo que sucede es que no quisiera que solo se grabe la cabecera y si el detalle posee un error ninguno de los datos deben confirmarse.
Gracias de antemano por la Ayuda.