Fórum Transacao com IBX #466473

09/01/2014

0

existe algum inconveniente em usar um IBTransaction em cada form para validar transações ?
Marcelino Santos

Marcelino Santos

Responder

Posts

10/01/2014

Fabio Cardoso

o ideal e ter um data modulo onde o componente de conexao e transacao estao e em cada form voce fazer a chamada do transaction
Responder

Gostei + 0

10/01/2014

Marcelino Santos

o ideal e ter um data modulo onde o componente de conexao e transacao estao e em cada form voce fazer a chamada do transaction

já tentei dessa forma porem quando fecho uma transação é fechada todas as outras transações que estiverem abertas
Responder

Gostei + 0

10/01/2014

Fabio Cardoso

voce abre formularios em cascata? tipo:
cadastro de clientes chama cadastro de telefone, depois cadastro de clientes chama cadastro de bairros , quero dizer voce tem um formulario pai recebendo dados de formularios filhos? ou voce tem uma aplicacao que abre uma tela, minimiza, abre outra, minimiza abre outra?

se for formularios em cascata voce usa o comando IBTransaction1.CommitRetaining, no botao confirma do formulario pai, e em cada formulario filho voce usa apenas ibtable1.post;
é assim que faco aqui
Responder

Gostei + 0

10/01/2014

Marcelino Santos

[code]
[/code]
voce abre formularios em cascata? tipo:
cadastro de clientes chama cadastro de telefone, depois cadastro de clientes chama cadastro de bairros , quero dizer voce tem um formulario pai recebendo dados de formularios filhos? ou voce tem uma aplicacao que abre uma tela, minimiza, abre outra, minimiza abre outra?

se for formularios em cascata voce usa o comando IBTransaction1.CommitRetaining, no botao confirma do formulario pai, e em cada formulario filho voce usa apenas ibtable1.post;
é assim que faco aqui

a aplicacao nao abre em cascata, ela abre uma minimizando o outro 
Responder

Gostei + 0

10/01/2014

Fabio Cardoso

como eu disse faca tudo que voce precisar fazer nas telas que precisar, quando terminar voce cria algo como o codigo abaixo efetuando uma transacao so para todos os posts que voce efetuar


if not dmDados.dbDados.InTransaction then
dmDados.dbDados.StartTransaction;
if (qryMaster <> nil) and (qryMaster.Active) then
if TQuery(qryMaster).UpdatesPending then
TQuery(qryMaster).ApplyUpdates;
if (qryDetail <> nil) and (qryDetail.Active) then
if TQuery(qryDetail).UpdatesPending then
TQuery(qryDetail).ApplyUpdates;

if (qrySubDetail <> nil) and (qrySubDetail.Active) then
if TQuery(qrySubDetail).UpdatesPending then
TQuery(qrySubDetail).ApplyUpdates;

dmDados.dbDados.Commit;
Responder

Gostei + 0

10/01/2014

Marcelino Santos

como eu disse faca tudo que voce precisar fazer nas telas que precisar, quando terminar voce cria algo como o codigo abaixo efetuando uma transacao so para todos os posts que voce efetuar


if not dmDados.dbDados.InTransaction then
dmDados.dbDados.StartTransaction;
if (qryMaster <> nil) and (qryMaster.Active) then
if TQuery(qryMaster).UpdatesPending then
TQuery(qryMaster).ApplyUpdates;
if (qryDetail <> nil) and (qryDetail.Active) then
if TQuery(qryDetail).UpdatesPending then
TQuery(qryDetail).ApplyUpdates;

if (qrySubDetail <> nil) and (qrySubDetail.Active) then
if TQuery(qrySubDetail).UpdatesPending then
cara valeu !!!  vou tentar fazer dessa forma se nao conseguir volto a contactar

TQuery(qrySubDetail).ApplyUpdates;

dmDados.dbDados.Commit;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar