boa tarde a todos,
tive um problema com campo data ( pra variar ) usando um dateEdit,
que no meu caso é da DevExpress, no delphi e SQL Server, tive que fazer um
pequeno ajuste de emergência , do qual não me orgulho muito, mas até o momento
tem me servido, e como não achei nada melhor pra substituir, vou mostrar aqui e
espero que ajude alguém.
em uma determinada situação estava precisando gravar um
campo do tipo data zerado no banco de dados, mas o valor que vem do dateEdit
não preenchido não é aceito no delphi e nem no SQL, ou da algum erro de data
invalida ou grava a primeira data valida existente 30/12/1899, então fiz o seguinte procedimento.
o componente sem preencher
grava no meu objeto o valor 00/00/0000,
então pensei em verificar :
if obj.data = 00/00/0000 then qry.data := null else qry.data :=
obj.data;
ou seja, se o campo data
do meu objeto for 00/00/0000, passo para a qry o valor null, assim não gravo na
data daquele registro, se não, eu gravo o valor preenchido.
mas para a minha surpresa
o delphi da um erro de ponto flutuante e não funciona, então fiz a seguinte
alteração
if datetostr(obj.data) = '00/00/0000'
then qry.data := null else qry.data := obj.data;
e assim funcionou
certinho, pois se faço a comparação sem a conversão de data para texto, o
delphi tb da um erro falando que não posso comparar um objeto data com uma
string, então essa foi a maneira que encontrei.
se vc usa algum componente
que retorna essa mesma informação, esse metodo pode te ajudar, se sua duvida
for só como gravar a data zerada no banco, passe no sql do insert o valor null.
espero ter ajudado alguem
até a proxima, e não
esqueçam de dar uma clicadinha em algum anuncio..rsrs
Nenhum comentário:
Postar um comentário