PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Transação Atomica
WX - Transação Atomica
Iniciado por BOLLER, mar., 02 2018 4:39 PM - 2 respostas
Membro registado
3.655 mensagems
Popularité : +175 (223 votes)
Publicado em março, 02 2018 - 4:39 PM
Prezados,

Os comandos Hadd, Hmodify, Hdelete podem ter antes deles um boolean se um deles tiver falso a
outra variavel gbTransacao boleana fica false.

Exemplo
//#####################################
HTransactionStart("C:\Temp\Transaction.trs", "clientes , estoque , financeiro , contabil , fiscal")

WHEN EXCEPTION IN

ok1 is boolean = HModify(clientes)
ok2 is boolean = HModify(estoque)
ok3 is boolean = HAdd(financeiro)
ok4 is boolean = HAdd(contabil)
ok5 is boolean = HAdd(fiscal)

IF ok1 = True AND ok2 = True AND ok3 = True AND ok4 = True AND ok5 = True
gbTransacao = True
ELSE
gbTransacao = False
END

IF gbTransacao = True
HTransactionEnd()
ELSE
HTransactionCancel()
END

DO

HTransactionCancel()

END

//#####################################


Ou é tudo
ou é nada!!!!

Isso se chama: "transação atomica"

ou tudo acontece perfeitamente ou nada acontece!!!!

Maiores detalhes

https://help.windev.com/en-US/…

https://help.windev.com/en-US/…

https://help.windev.com/en-US/…

https://help.windev.com/en-US/…

https://help.windev.com/en-US/…

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, março, 02 2018 - 4:41 PM
Membro registado
3.655 mensagems
Popularité : +175 (223 votes)
Publicado em março, 02 2018 - 4:59 PM
Outro exemplo:

//#####################################

IF VerificaConexao( ) = True

User is string = "adriano"
DataHora is string = DateSys() + TimeSys()

HTransactionStart("C:\Temp\Transaction_"+User+"_"+DataHora+".trs", "clientes , estoque , financeiro , contabil , fiscal")

IF fFileExist("C:\Temp\Transaction_"+User+"_"+DataHora+".trs") = True

WHEN EXCEPTION IN

ok1 is boolean = HModify(clientes)
ok2 is boolean = HModify(estoque)
ok3 is boolean = HAdd(financeiro)
ok4 is boolean = HAdd(contabil)
ok5 is boolean = HAdd(fiscal)

IF ok1 = True AND ok2 = True AND ok3 = True AND ok4 = True AND ok5 = True
gbTransacao = True
ELSE
gbTransacao = False
END

IF gbTransacao = True
HTransactionEnd()
ELSE
HTransactionCancel()
END

DO

HTransactionCancel()

END

ELSE
Info("Não foi possivel criar o arquivo de transação no temp, avise o seu desenvolvedor de sistemas")
END//fileexist

ELSE
Info("Sem conexao, tente mais tarde!!!")
END//verifica conexao

//#####################################


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.655 mensagems
Popularité : +175 (223 votes)
Publicado em março, 02 2018 - 5:06 PM
E caso nao queira criar os booeanos veja como seria a condição if

IF HModify(clientes) AND HModify(estoque) AND HAdd(financeiro) AND HAdd(contabil) AND HAdd(fiscal) THEN
HTransactionEnd()
ELSE
HTransactionCancel()
END


obrigado Willian!!!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/