Conversão Data
Estou fazendo um form de cadastro de clientes mas quando vou cadastrar a data de nascimento está dando erro. Estou usando o Banco Interbase e o tipo de dado é Date. Olhem o codigo abaixo:
...
begin
Data := StrtoDate(MaskEditDataNasc.text);
ShortDateFormat := ´dd/mm/yy´;
MaskEditDataNasc.text:= DatetoStr(Data);
try
Transacao.TransactionID := 1;
Transacao.IsolationLevel := xilREPEATABLEREAD;
DM.SQLConnection1.StartTransaction(Transacao);
DM.SQLDataSet1.Close;
...
Na execusão quando quero cadastrar a data : 21/11/04 ele da o seguinte erro: ´21/11/04´ is not a valid date. E agora?
Agradeço desde já!
...
begin
Data := StrtoDate(MaskEditDataNasc.text);
ShortDateFormat := ´dd/mm/yy´;
MaskEditDataNasc.text:= DatetoStr(Data);
try
Transacao.TransactionID := 1;
Transacao.IsolationLevel := xilREPEATABLEREAD;
DM.SQLConnection1.StartTransaction(Transacao);
DM.SQLDataSet1.Close;
...
Na execusão quando quero cadastrar a data : 21/11/04 ele da o seguinte erro: ´21/11/04´ is not a valid date. E agora?
Agradeço desde já!
_celo
Curtidas 0
Respostas
Keitarosan
21/11/2004
Nunca trabalhei cum o IB, mas serah que ele nao estah reclamando a data pelo fato dela estar no formato brasileiro???
Tenta o formato americano, só pra testar, quem sabe? :wink:
Tenta o formato americano, só pra testar, quem sabe? :wink:
GOSTEI 0
_celo
21/11/2004
Tentei colocar em modo americano mas continua com o mesmo erro.
:(
Mesmo assim valew!
:(
Mesmo assim valew!
GOSTEI 0
Keitarosan
21/11/2004
e com relação a mascara do maskEdit?? Já checou se ela aceita data no formato dd/mm/yy ou dd/mm/yyyy??
GOSTEI 0
_celo
21/11/2004
Como faço pra checar a mascara do MaskEdit se ela aceita dd/mm/yyyy?
GOSTEI 0
Lau
21/11/2004
Eu estou desevolvendo um cadastro de veiculos, e no botão pesquisar não esta dando certo, o que será estou fazendo de errado?
{procedure TfrmVeiculo.spbtnPesquisarClick(Sender: TObject);
var
intPosicao:Integer;
begin
Reg_cadVeiculo := TStringList.Create;
Reg_cadVeiculo.Insert(0, edtCodigo.Text);
Reg_cadVeiculo.Insert(1, edtMarca.Text);
Reg_cadVeiculo.Insert(2, edtModelo.Text);
Reg_cadVeiculo.Insert(3, edtAno.Text);
Reg_cadVeiculo.Insert(4, edtPlaca.Text);
intPosicao := Reg_CadVeiculo.IndexOf( edtCodigo.Text + ´;´
+ edtMarca.Text + ´;´ + edtModelo.Text + ´;´ + edtAno.Text + ´;´ + edtPlaca.Text);
ShowMessage(´ O cadastro foi encontrado na posição: ´ + IntToStr (intPosicao));
For intPosicao := 0 To 4 Do
edtCodigo.Text := edtCodigo.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtModelo.Text := edtModelo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtAno.Text := edtAno.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtPlaca.Text := edtPlaca.Text + Reg_CadVeiculo[intPosicao] + 1310;
Reg_cadVeiculo.Sort;
edtCodigo.Text := ´Código´ + 1310 ;
edtMarca.Text := ´Marca´ + 1310 ;
edtModelo.Text := ´Modelo´+ 1310 ;
edtAno.Text :=´Ano´+ 1310 ;
edtPlaca.Text := ´Placa´+ 1310 ;
For intPosicao := 0 To 4 Do
edtCodigo.Text := edtCodigo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtModelo.Text := edtModelo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtAno.Text := edtAno.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtPlaca.Text := edtPlaca.Text + Reg_CadVeiculo[intPosicao] + 1310;
ShowMessage(´ O cadastro foi encontrado na posição: ´ + IntToStr (intPosicao));
end; }
{procedure TfrmVeiculo.spbtnPesquisarClick(Sender: TObject);
var
intPosicao:Integer;
begin
Reg_cadVeiculo := TStringList.Create;
Reg_cadVeiculo.Insert(0, edtCodigo.Text);
Reg_cadVeiculo.Insert(1, edtMarca.Text);
Reg_cadVeiculo.Insert(2, edtModelo.Text);
Reg_cadVeiculo.Insert(3, edtAno.Text);
Reg_cadVeiculo.Insert(4, edtPlaca.Text);
intPosicao := Reg_CadVeiculo.IndexOf( edtCodigo.Text + ´;´
+ edtMarca.Text + ´;´ + edtModelo.Text + ´;´ + edtAno.Text + ´;´ + edtPlaca.Text);
ShowMessage(´ O cadastro foi encontrado na posição: ´ + IntToStr (intPosicao));
For intPosicao := 0 To 4 Do
edtCodigo.Text := edtCodigo.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtModelo.Text := edtModelo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtAno.Text := edtAno.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtPlaca.Text := edtPlaca.Text + Reg_CadVeiculo[intPosicao] + 1310;
Reg_cadVeiculo.Sort;
edtCodigo.Text := ´Código´ + 1310 ;
edtMarca.Text := ´Marca´ + 1310 ;
edtModelo.Text := ´Modelo´+ 1310 ;
edtAno.Text :=´Ano´+ 1310 ;
edtPlaca.Text := ´Placa´+ 1310 ;
For intPosicao := 0 To 4 Do
edtCodigo.Text := edtCodigo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtMarca.Text := edtMarca.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtModelo.Text := edtModelo.Text + Reg_CadVeiculo[intPosicao] + 1310;
edtAno.Text := edtAno.Text + Reg_CadVeiculo[intPosicao] + #1310;
edtPlaca.Text := edtPlaca.Text + Reg_CadVeiculo[intPosicao] + 1310;
ShowMessage(´ O cadastro foi encontrado na posição: ´ + IntToStr (intPosicao));
end; }
GOSTEI 0
Sandra
21/11/2004
_Celo,
:oops: Eu também mal conheço o IB, mas não entendi uma coisa: o raciocínio, a lógica do código:
Por que está setando para a variável Data receber o texto do MaskEditDataNasc, convertido [b:b5c42fd2cd]de string para data[/b:b5c42fd2cd] e depois, fazendo com que esse mesmo MaskEdit receba novamente a [b:b5c42fd2cd]data convertida para string[/b:b5c42fd2cd]? :roll:
Outra coisa, experimente colocar o [i:b5c42fd2cd]ShortDateFormat := ´dd/mm/yy´;[/i:b5c42fd2cd] no onCreate do seu form de cadastro.
:oops: Eu também mal conheço o IB, mas não entendi uma coisa: o raciocínio, a lógica do código:
begin Data := StrtoDate(MaskEditDataNasc.text); ShortDateFormat := ´dd/mm/yy´; MaskEditDataNasc.text:= DatetoStr(Data);
Por que está setando para a variável Data receber o texto do MaskEditDataNasc, convertido [b:b5c42fd2cd]de string para data[/b:b5c42fd2cd] e depois, fazendo com que esse mesmo MaskEdit receba novamente a [b:b5c42fd2cd]data convertida para string[/b:b5c42fd2cd]? :roll:
Outra coisa, experimente colocar o [i:b5c42fd2cd]ShortDateFormat := ´dd/mm/yy´;[/i:b5c42fd2cd] no onCreate do seu form de cadastro.
GOSTEI 0
_celo
21/11/2004
Sandra tipow tentei fazer com que a variavel data recebecer o valor do MaskEdit depois transforma em modo americano ´mm/dd/yy´ e depois o mesmo MaskEdit receber a data do tipo americano ai depois é inserido no banco pois o IB so aceita esse tipo mm/dd/yy e o cara quando digitar vai digitar assim dd/mm/yy. Ta ligada? sse souber me de uma dica. ;)
valew.
valew.
GOSTEI 0
Xtreme
21/11/2004
Como faço pra checar a mascara do MaskEdit se ela aceita dd/mm/yyyy?
da uma olhada na prorpiedade EditMask do MaskEdit, por exemplo eu uso a seguinte configuração !99/99/0000;1;_
GOSTEI 0
Gandalf.nho
21/11/2004
Em vez de usar um MakEdit para datas, use o DateTimePicker, daí a data já vem no formato adequado.
GOSTEI 0