Fórum Ainda não consegui... Validação de data no DBGRID... Ajudem. #170920

23/07/2003

0

Uso DELPHI 5.0 E PARADOX

O meu problema é o seguinte...

Faço inclusão e edição de itens em uma TABELA (tbcaddep.dtnascdep)usando um DBGRID, porém quando digito uma data de nascimento errada ou fora do mês, tipo 31/02/2003, automaticamente é mostrada uma mensagem de erro quando mudo de coluna/célula ou linha...

O q devo fazer pra resolver isso ????

Em um DBEDIT normal tem o tratamento de exceções mas no DBGRID não sei como fazer...

Desde já agradeço toda ajuda...

Jota


Jota

Jota

Responder

Posts

23/07/2003

Fer

Ola,
Lembre-se que o DBgrid esta ligado ao banco ... e se vc tratar a exceção no banco ou table que o DBgrid respeitará.

Tenho essa rotina que trata os erros do retorno do banco.

Tratando erros no banco de dados
procedure AppException(Sender: TObject; E: Exception); 
... 
implementation 
... 
procedure TChamado.AppException(Sender: TObject; E: Exception); 
var j: Integer; 
Msg: String; 
begin 
Warning1.Hide; 
if E is EDBEngineError then 
begin 
with EDBEngineError(E), Errors[0] do 
if ErrorCode = 9734 then // Has Details 
ShowMessage(´Este registro não pode ser removido, outros arquivos precisam dele.´) 
else 
if ErrorCode = 9729 then //11756 then // Key Violation (o nro do codigo está errado) 
ShowMessage(Format(´Ocorreu um erro no banco de dados: código ¬d.´, [ErrorCode])) 
else 
if ErrorCode = 11270 then // another .NET file 
ShowMessage(´Diretório controlado por outro arquivo .NET, verifique configuração do Banco de Dados.´) 
else 
if ErrorCode = 9733 then // Master record missing 
ShowMessage(´Registro Master não encontrado.´) 
else 
if ErrorCode = 9734 then // Master has details 
ShowMessage(´Este registro não pode ser removido, ele está sendo usado pelo Fireman.´) 
else 
if ErrorCode = 8708 then // Record/Key deleted 
ShowMessage(´Este registro foi removido por outro Operador.´) 
else 
if ErrorCode = 10241 then // alredy in use - // Copy usado para pegar o nome do usuário 
with Errors[2] do 
ShowMessage(Format(´Este registro está sendo usado pelo Operador: ´´¬s´´.´, [Copy(Message, 7, 20)])) 
else // Outros 
begin 
for j := 0 to ErrorCount -1 do // Loop para pegar todas as linhas das msg de erro 
with Errors[j] do 
Msg := Msg + Message + 13; 
ShowMessage(Format(´EDBEngineError ¬d: ¬s´, [ErrorCode, Msg])) 
end 
end 
else 
if E is EConvertError then 
begin 
with EConvertError(E) do 
if Pos(´date and time´, Message) > 0 then 
ShowMessage(´Informe uma data e hora válida.´) 
else 
if Pos(´is not a valid time´, Message) > 0 then 
ShowMessage(´Informe uma hora válida.´) 
else 
if Pos(´is not a valid date´, Message) > 0 then 
ShowMessage(´Informe uma data válida.´) 
else 
Application.ShowException(E); 
end 
else 
Application.ShowException(E); 
end; // AppException


Falow


Responder

Gostei + 0

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

Aceitar