Gravar campo com valor default da tabela?
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
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
Curtidas 0
Respostas
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.:
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.
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