Evandro Andersen

Valor Default da Coluna

9 posts in this topic

Olá,
No POSTGRESQL tenho uma coluna que não pode ser NULA e ela tem um valor DEFAULT  now()
então se eu faço um insert usando os comandos SQL e não informo a coluna, automaticamente o postgresql preenche o campo com o resultado da função NOW(), tudo certo até aqui.

Mas usando o comando HADD do Windev, ele sempre envia essa coluna com valor NULL, o que causa um erro,
gostaria de saber se existe uma forma de o DEFAUL VALUE informando no banco ser usado pelo windev.

 

Att,

Evandro Andersen
 

image1.png

image2.png

image3.png

1 person likes this

Share this post


Link to post
Share on other sites

Evandro não sou especialista nisso mas vou compartilhar uma hipótese, esses dias um colega passou por uma situação q via comando H não conseguia inserir no banco devido particularidade semelhante, então sugeri a ele q nesse caso específico usasse uma Query de inserção (no caso dele foi update se não me engano) e usasse o comando HExecuteSQLQuery(... com o parametro de hWithOutCorretion )

Já pensou em fazer dessa forma?

Share this post


Link to post
Share on other sites

Sim admin,
Se usar os comandos SQL funciona perfeitamente, pois daí não informo a coluna em questão no comando,
mas neste caso preciso usar os comandos H, pois essa Window é baseada em um template.

Att,
 

Evandro Andersen

Share this post


Link to post
Share on other sites
Em 13/12/2019 at 1:19 PM, Evandro Andersen disse:

Olá,
No POSTGRESQL tenho uma coluna que não pode ser NULA e ela tem um valor DEFAULT  now()
então se eu faço um insert usando os comandos SQL e não informo a coluna, automaticamente o postgresql preenche o campo com o resultado da função NOW(), tudo certo até aqui.

Mas usando o comando HADD do Windev, ele sempre envia essa coluna com valor NULL, o que causa um erro,
gostaria de saber se existe uma forma de o DEFAUL VALUE informando no banco ser usado pelo windev.

 

Att,

Evandro Andersen
 

image1.png

image2.png

image3.png

Evandro voce deve estar utilizando análise, ja observou como esta definido isso na análise? voce definiu la na análise o valor default como now()?

Share this post


Link to post
Share on other sites
4 minutos atrás, Vilani disse:

Evandro voce deve estar utilizando análise, ja observou como esta definido isso na análise? voce definiu la na análise o valor default como now()?

Boa tarde Vilani,

se coloca essa informação na análise, 
na próxima sincronização, essa informação é limpa.

a unica forma que encontrei, foi preencher o campo via windev mesmo

 

Att,

 

Evandro

2 people like this

Share this post


Link to post
Share on other sites

Você pode proteger esse comportamento elaborando uma trigger direto no banco de dados "ANTES" da inclusão.

 

[]´s

 

1 person likes this

Share this post


Link to post
Share on other sites
Em 17/12/2019 at 2:31 PM, Evandro Andersen disse:

Boa tarde Vilani,

se coloca essa informação na análise, 
na próxima sincronização, essa informação é limpa.

a unica forma que encontrei, foi preencher o campo via windev mesmo

 

Att,

 

Evandro

Como seria isso @Evandro Andersen

Share this post


Link to post
Share on other sites

Então Cassiano,
esse é um "problema" que eu ainda não consegui resolver

quando você faz um insert usando os comandos SQL, você informa quais colunas serão usadas,
então se você não informar alguma coluna, automaticamente o banco irá usar o valor DEFAUL desta coluna
exemplo: o campo data de um pedido, eu não informo ele no sql mas o default dele é now(), então a coluna será preenchida com a data/hora atuais
isso funciona perfeitamente quando EU digito o SQL,

MAS... se eu usar os comando H, como por exemplo HADD, todas as colunas da tabela são enviadas ao motor do postgresql durante o insert, desta forma eu não consigo usar o recurso do DEFAULT da coluna

no exemplo acima, se eu usar o comando HADD, eu sou obrigado a informar o valor da coluna pedi_data antes de executar o HADD

talvez alguém tenha resolvido isso já, mas eu não consegui

Evandro Andersen
HDTec Software
 

Share this post


Link to post
Share on other sites

 

Em 17/12/2019 at 2:31 PM, Evandro Andersen disse:

Boa tarde Vilani,

se coloca essa informação na análise, 
na próxima sincronização, essa informação é limpa.

a unica forma que encontrei, foi preencher o campo via windev mesmo

 

Att,

 

Evandro

Ia sugerir vc colocar na análise, mas vi q aki vc já mencionou q na próxima sincronização é limpa, o q torna inviável haja visto q se existem vários campos, e geralmente existem com essa característica, ter q ficar ajustando campo a campo novamente, é um trabalho em vão, tipo "enxugar gelo".

Agora deve ter algo q ainda não sabemos q resolva essa questão.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now