Fórum DBExpress X Data nula outra vez #194160
11/11/2003
0
Uso Delphi 7 X DBExpress X Firebird 1.5RC6
O Problema:
Tenho um form ligado a um Datamodule, todos os componentes são TDBEdits, um dos fields é timestamp, ou seja, desejo gravar uma data, quando o usuário digita uma data valida OK, grava certinho, o problema é quando resolve apagar esta data.
A data foi gravada por exemplo como: 20/10/2003 por algum motivo o usuário quer apagar esta data que não é campo obrigatório, como faço para voltar para null. Não utilizo Insert, Update direto no banco, pois quando faço através destes comandos tudo bem, mas não posso perder este form, e trocar tudo por edit / maskedit, não acredito que não possa ter uma forma mais eficaz ::)))
1) Quando ele deleta a data existente no TDBedit e pressiona enter ou tab ou clica para sair do campo, aparece a seguinte mensagem
SqlTimestamp could not valid.
Já tentei tratar no evento Exit, Change, no datamodule no ONGettext, ONSetText mas nada feito. Após o Applyupdates(0) - Aparece um erro de Acess violation, se vc tenta gravar data nula.
Alguém tem alguma dica.
Muito obrigado
César
Cesarpir
Curtir tópico
+ 0Posts
11/11/2003
Edgar Olavo
Fiz uma simulação aqui e não deu esse erro, tudo funcionou.
Se você puder mandar o código e o banco de dados ajudaria muito a resolver seu problema.
até
Gostei + 0
11/11/2003
Fred
Gostei + 0
11/11/2003
Markk
Se não, anule a data com:
StrToDate(´´);
Gostei + 0
29/10/2005
Lorde_morte.
Gostei + 0
30/10/2005
Cesarpir
os componentes do elivado, ele tem um componente chamado TEvDBDateEdit que com resolve o problema, posso pressionar delete, e gravar que ele grava data nula no banco, existindo uma data registrada antes ou não, porém não é free.
Sem querer fazer propaganda, mas por enquanto é a única forma que vi, deve existir outros free.
Só para comentar este problema estava usando firebird 1.5, nesta empresa que estou desenvolvendo usando os componentes do elivado utilizo o Mysql40.
Bom espero que te ajude ou pelo menos uma luz, caso ache uma solução favor avise-me, obrigado.
Abraços
César
Gostei + 0
30/10/2005
Cesarpir
Ai da erro, mas sem ela blz, o problema é que o usuário tem que digitar as barras.
Valeu
César
Gostei + 0
03/11/2005
Lorde_morte.
Mas nao é nada profissional deixar um campo data sem qualquer mascara.
Ninguem sabe como solucionar esse problema?
Me ajudem!!
Gostei + 0
03/11/2005
Olavojr
http://forum.clubedelphi.net/viewtopic.php?t=69016
Gostei + 0
26/11/2006
Brasidata
O código abaixo deverá ser colocado no evento OnChange do DBedit que estiver com esse problema. Como o código usa TypeCast, não importa o nome do componente, do campo ou BD.
if ((SENDER as TDBEdit).DataSource.DataSet.State in [dsInsert,dsEdit]) AND ((SENDER as TDBEdit).Text = ´ / / ´) then
(SENDER as TDBEdit).Field.Clear;
Abraços a todos.
MARCO DELL ISOLA
BRASIDATA :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)