Fórum mask Edit (problemas com literal caracteres) #327870
22/08/2006
0
pra salvar nela eu uso um mask edit salvando os ´literais caracteres´
1 | DM.Tbl_Eventos_ENASCIMENTO.AsDateTime := StrToDateTime(Eventos_E.Nascimento.Text); |
assim funciona beleza. só que eu nao gostaria de salvar os ´literais caracteres´, ou seja nao gostaria que fosse com o ´ / / ´ mas sim só os numeros...
ja sei que a formatação de data do firebird é xx.xx.xxx
se eu setar pra nao salvar os ´literais caracteres´ o sistema acusa o erro ´22082006´ is not a valid date time, quando eu dou o post na tabela
e se eu deixar o campo vazio ele da o erro:´´ is not a valid date time
Observações: o referido campo da tabela aceita NULL
1 | NASCIMENTO DATE, |
Eu precisaria que nao salvasse os ´literais caracteres´ e que ele aceitasse efetivamente o valor NULL quando eu nao colocasse data alguma no mask edit
uso o Delphi 7
Alguem poderia me ajudar??
Abração!!

Mahdak
Curtir tópico
+ 0Posts
22/08/2006
Jonas_giron
codigo...
function RemoveBarra(Texto:String):String;
begin
Texto := Trim(Texto);
while (Pos(´/´,texto) <> 0) do
Delete(texto,Pos(´/´,texto),01);
Result := Texto;
end;
procedure TForm01.BotaoGravaClick(Sender: TObject);
begin
DM.Tbl_Eventos_ENASCIMENTO.Value := RemoveBarra(Eventos_E.Nascimento.Text);
end;
Gostei + 0
22/08/2006
Mahdak
só to perguntando isso pq ja passei por esse problema e tive que retornar para o campo do tipo DATE....
:cry:
Gostei + 0
22/08/2006
Marco Salles
sinceramente , do jeito que ´vai´ , eu acho que é irrelevante . Acho que o importante é do Jeito que se apresenta para o usuário , isto é a sua interface.
eu desconhelo esta afirmação...O campo do tipo Tdate se apresenta para mim , salvo alguma formatação extra , da maneira que é imposta pelas as [b:f7f8afb1c7]configuraçoes do Windows[/b:f7f8afb1c7]...
Ate mesmo no IbExpert quando visualizo aparece as Barras /
Isto ja é um ´problema´ do tipo TdateField .
eu acho que , mesmo que voce faça alguma [b:f7f8afb1c7]codificação extra[/b:f7f8afb1c7], para isto , na hora de apresentar od dados , vale as configuraçoes regionais... Logo , o formato com esta no Firebird < que é algo interno> não nos devemos nos preocupar
Voce fazendo um If voce evita esse tipo de erro
1 2 | if MaskEdit1.text <> ´ / / ´ Then //vale somente salvando Literais DM.Tbl_Eventos_ENASCIMENTO.AsDateTime := StrToDateTime(Eventos_E.Nascimento.Text); |
boa sorte.
Gostei + 0
22/08/2006
Mahdak
primeiro gostaria de dizer que nao gostaria que os literais caracteres fossem salvos unica e exclusivamente pele fato de nao querer que apareçam só barras nos relatórios que nao tem data cadastrada... consegui resolver com a ajuda de um amigo (peplau) e do marcos salles da seguinte forma:
antes de dar o post no formulario....
1 2 3 4 5 6 7 8 9 | // evita o problema da data vazia if NASCIMENTO.text = ´ / / ´ Then begin // passa batido e nao salva o nascimento end else begin DM.Tbl_Eventos_ENASCIMENTO.AsDateTime := StrToDateTime(Eventos_E.Nascimento.Text); end; |
validando o relatório:
1 2 3 4 5 6 | procedure TRelatEventos_E.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin if label_nascimento.DataField = ´ / / ´ then label_nascimento.DataField := ´´; end; |
marcos, me expressei mal sobre a formatação de datas... o formato DATE no firebird tem pontos entre o dia.mes.ano, mas depende das configurações regionais sim... eu só tava me referindo ao ponto....
abração a todos!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)