Gravar campo com valor default da tabela?

Delphi

12/12/2008

Olá companheiros,

Gostaria de ao incluir um novo registro em uma tabela, caso algum campo não seja informado pelo usuário, e este campo tenha um valor default no banco de dados, que este campo fosse preenchido com o valor default do banco e não ficasse como Null.

Para efeito de configuração de grids, máscaras, etc. seto todos os Tfields do cds em tempo de projeto.

O problema é que ao darmos um Applyupdates o ClientDataSet envia esses campos como Null e o Firebird não assume o valor default.

Alguma sugestão?

[]´s
AASN


Aasn

Aasn

Curtidas 0

Respostas

Micheus

Micheus

12/12/2008

Pelo que já li uma certa vez, quando o campo é omitido na instrução SQL que é enviada para o Firebird, os valores default são atribuidos corretamente. Por ex.:
insert tabela(campo1, campo2, campo3) values(:param1, :param2, :param3)
se o valor do campo2 for deixado vazio, para que o valor default fosse assumido teria que ser utilizada a instrução:
insert tabela(campo1, campo3) values(:param1, :param3)

Usando o componente ZeosLib ([i:d0eef99b7c]TZQuery[/i:d0eef99b7c]), desde que eu não atribua ´´ ao um campo varchar (p.e.), eu não experimento este tipo de ´erro´ - aparentemente o componente faz este tipo de otimização do SQL enviado ao banco.


GOSTEI 0
POSTAR