PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Transação Atomica
WX - Transação Atomica
Débuté par BOLLER, 02 mar. 2018 16:39 - 2 réponses
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 02 mars 2018 - 16:39
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/
Message modifié, 02 mars 2018 - 16:41
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 02 mars 2018 - 16:59
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/
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 02 mars 2018 - 17:06
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/