Fórum Zeos #371068

06/06/2009

0

Estou desenvolvendo um sistema com Firebird/Zeos, mas depois de dar um append e inserir os dados, na hora que clico em gravar e faço a validação dos campos ele me fala que o campo ta vazio, mas eu digitei e os dbedits estao ligados corretamente.

procedure TfGeneros.btNovoClick(Sender: TObject);
begin

DM1.Generos.Close;
DM1.Generos.ParamByName(´PCODIGO´).AsInteger := -1 ;
DM1.Generos.Open;
dm1.Generos.Append;
HabilitaForm(True);
dbeNome.SetFocus;
end;

begin
if (DM1.Generos.FieldByName(´NOME´).asstring =´´) Then
Begin
MsgValida(´Informe o nome do Gênero antes de salvar´,dbeNome,nil);
Exit;
End;
DM1.Generos.Post;
DM1.Generos.CommitUpdates;

end;

Alguem pode me ajudar?


Andresan

Andresan

Responder

Posts

10/06/2009

Kuroski

Cara, tente fazer a conferencia usando o conteúdo dos DBEdit.

Troque
if (DM1.Generos.FieldByName(´NOME´).asstring =´´) Then

Por

if (DBEdit1.Text =´´) Then

Se não me engano isto ocorre pq os dados só estarão no campo NOME apos vc dar um POST. Antes disto os dados não foram gravados ainda. Por isso use a conferecia no DBEdit mesmo.


Responder

Gostei + 0

28/06/2009

Andresan

alguem tem uma solucao melhor?


Responder

Gostei + 0

29/06/2009

Danielrsanches

eu já sofri com esse problema e encontrei 2 soluções ...

1: é a dica do nosso amigo kuroski; faça a checagem diretamente no dbedit = if (DBEdit1.Text =´´) Then

2: antes de salvar, passe o focus para outro objeto ....

o que percebi que ocorre é o seguinte:
quando vc está digitando em um dbedit, se vc não mudar o foco para outro antes de tentar salvar os dados, os dados digitados ´ainda´ não estão na tabela, ocorrendo assim a falha na checagem ...


faça alguns testes aí e depois post pra gente...

abraços !!


Responder

Gostei + 0

29/06/2009

Andresan

muito obrigado pelas dicas


Responder

Gostei + 0

03/07/2009

Andresan

Achei a solução
No botao salvar
ActiveControl := Nil;

Abraços a todos


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar