|
transacciones con firebird.
Buenas tardes a todos..
soy nuevo en el club... mi idea es aportar y también encontrar ideas y soluciones a algunas situaciones... para el efecto entonces a lo que vinimos,..
tengo un problema con el uso de transacciones de Delphi y Firebird para manejo de 2 tablas: maestro y detalle
en la unidad de datamodule tengo 7 componentes asi (según lei en alguna parte)
1. SQLCONNECTION para conectarse a la BD.
2. SQLDATASET: Dos, cada uno de ellos conectados con sqlconnection a la tabla maesto y otro a la tabla detalle.
3. DATASOURCE para unir la tabla detalle y maestro.
4. DATASETPROVIDER apuntando al SQLDATASET de la tabla maestro.
5. CLIENTDATASET son los dataset de cada tabla, el dataset de la tabla maestra esta unido con el dataset de la tabla detalle.
En el Datasetprovider tengo activado resuelva el dataset ( resolvetodataset )
en el evento afterpost del clientdataset se inicia la transacción asi
var TD: TTransactionDesc ;
begin..
TD.TransactionID := 1;
TD.IsolationLevel := xilREADCOMMITTED;
Datamodule1.SQLC_BDSBI.StartTransaction(TD);
end ..
y viene mi problema al ejecutar me sale un error que no comprendo que componente lo genera.. el error
SQLT_detalle no puede ejecutar la operación en un dataset cerrado.. pero los dataset ambos están abiertos, aparentemente el datasetprovider que es el que resuelve el dataset lo esta cerrando y no comprendo en que momento.. he puesto en varios eventos de los dataset la propiedad
.open para abrirlos pero sigue igual...
Si alguien puede darme una manito,, seria de gran utilidad con el compromiso de compartir mi experiencia con todos..
saludo cordial a todos. y espero encontrar ayuda y ayudar a otros...
|