Olá Existe algum problema em utilizar a função TCSqlExec Para fazer Insert/Update/Delete, em tabelas da TOTVS
tirando o fato do campos "RE_C_N_O" e "RE_C_D_E_L"
Olá Existe algum problema em utilizar a função TCSqlExec Para fazer Insert/Update/Delete, em tabelas da TOTVS
tirando o fato do campos "RE_C_N_O" e "RE_C_D_E_L"
Boa tarde Guilherme,
Existe um grande risco na inserção de dados por conta do R_E_C_N_O_
e também na deleção lógica de dados quando existe o campo R_E_C_D_E_L_
, assim como você já citou.
Outro ponto importante é o DBAccess que tem cache de diversas informações, ele pode perder o controle de numeração... Se for um comando de DDL, as consequências também podem ser grandes, para isso existe a função TCRefresh
.
Levando em consideração esses pontos, não existe limitação de uso no TCSqlExec
no Protheus, inclusive o Protheus utiliza dessa função em algumas rotinas do padrão.
Boa tarde!
Acredito que você precisa ter muito cuidado ao fazer qualquer insert ou delete direto nas tabelas e caso seja a unica forma de se fazer você tenha total dominio e conhecimento do modulo e das tabelas envolvidas no processo. Assim você minimiza as possiveis falhas nessas instruçoes.
Mas se possivel utilize excautos das rotinas padrões para fazer os insert, alter ou delete.
Mas uma dica que posso dar é: Inseriu registro novo (SELECT MAX(RECNO)+1 FROM TABELA) dentro da values do seu insert na posição do recno.
Deletou pegue o valor de RECNO e coloque na RECDEL
Boa tarde,
Tenho algumas rotinas que utilizam TCSqlExec a muitos anos sem problema desde a versão 10