Shimaru 0 Denunciar post Postado Fevereiro 20, 2008 Boa noite pessoal, estou com um problema no meu cadastro de clientes. Tenho um campo 'datanascimento' na minha tabela, sei que o certo é sempre cadastrar todos os dados do cliente mais as vezes isso nao acontece e qdo quero deixar esse campo em branco aparece uma mensagem de erro dizendo que a data nao é valida. Uso o bco de dados mysql e um maskedit com a seguinte mascara !99/99/9999;1;_. Preciso da ajuda de vcs para resolver esse problema... Grato... Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Fevereiro 20, 2008 Boa tarde Shimaru o que provavelmente esta ocorrendo é que quando você manda gravar em branco esta indo para o banco no lugar da data o texto "__/__/____" ou seja ele esta tentando gravar a máscara.. tenta ao invés de atribuir o campo (maskedit) supondo eu, direto ao banco, atribua o valor dele para uma variável e a variavel você joga para o banco usando o stringreplace..ou se preferir até jogue direto, mas não deixe de usar o stringreplace ex: var vData : Tdate; begin vdata := StringReplace(editData.Text, '/', '', [rfReplaceAll])) campodatadatabelarecebe := vdata; end; espero ter ajudado.. qualquer coisa post aí abs Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Machado Moreira 0 Denunciar post Postado Fevereiro 22, 2008 cara fiz um teste aki.. seta a maskara assim ##/##/#### agora é só MaskEdit1.Text := ''; ou entao, MaskEdit1.Text := '10/01/1998'; ambos funcionam Compartilhar este post Link para o post Compartilhar em outros sites
Shimaru 0 Denunciar post Postado Fevereiro 24, 2008 Ogrigado pelas resposatas parceiros, mais nao estou conseguindo fazer funcionar. Vou passar o codigo que estou colocando: No botao 'NOVO' para cadastrar um Novo Cliente coloquei o seguinte codigo: Dados.Cliente.FieldByName('nascimento').AsString := MaskEdit1.Text; o meu maskedit tem a seguinte mascara: !99/99/9999;1;_ e consequentemente o texto aparece da seguinte maneira ' / / ' se eu deixar o maskedit sem a mascara e gravar em branco funciona normalmente e se eu colocar por exemplo: 10/10/2000 ele tbm funciona. Mais ai nao fica legal porque o tenho que digitar as '/' tbm. Entao se eu deixar com o maskedit com a mascara !99/99/9999;1;_ só funciona se eu preecher a data e eu deixar em branco ele dá um Erro dizendo que a '/ / ' nao é uma data valida. Seu eu colocar no maskedit a mascara !99/99/9999;0;_ e colocar por exemplo 10/10/2000 ai ele aparece que 10102000 nao é uma data valida. Nao sei mais o que fazer para solucionar esse problema e novamente a ajuda de vcs. Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Fevereiro 27, 2008 Amigo o que esta havendo é que você esta mandando para o banco a data com formatação diferente da que ele utiliza.. tente utilizar o formatdatetime para gravar quando você informar a data, e quando for inserir em branco, utiliza o stringreplace para retirar as //. ex: qryClientesEdit.FieldByName('XDT_NASC').Value := FormatDateTime('yyyy"/"mm"/"dd',edtNascimento.Date); qryClientesEdit.FieldByName('XDT_NASC').Value := FormatDateTime('dd"/"mm"/"yyyy',edtNascimento.Date); e quando estiver em branco.. qryClientesEdit.FieldByName('XDT_NASC').Value := trim(StringReplace(edtDtPedido.Text, '/', '', [rfReplaceAll])) aí o formato da data você tem que ver qual seu banco utiliza. de uma olhada com calma nisto aí que vai te ajudar.. estou meio com pressa agora para definir certinho o que é melhor para você mas com isto em mão você saberá qualquer duvida posta aí que te damos uma força abs Compartilhar este post Link para o post Compartilhar em outros sites