Ver Mensaje Individual
  #1  
Antiguo 11-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 22
FGarcia Va por buen camino
manejo correcto de OnValidate

Hola!

Cuando se ejecuta este codigo se intenta validar que el campo placas no sea un valor duplicado o vacio, se le envia un mensaje de informacion al usuario. El problema consiste en que segun yo deberia de cancelarse el post a la bd y sin embargo no es asi, esto lo se porque si genero cualquiera de los dos errores al final me aparece el mensaje de error de que se ha violado el campo placas pues se intento ingresar un campo null. Lo interesante es que si se llena el edit que recibe esos datos y se intenta nuevamente el post el mensaje sigue apareciendo como si alguna operacion quedara inconclusa. No he podido encontrar el error. Se agradece la ayuda.

Código Delphi [-]
procedure TfrmDatos.MDOEntradaPLACASValidate(Sender: TField);
var
  Query: TMDOSQL;
begin
  if Trim(MDOEntrada.FieldByName('PLACAS').AsString) <> '' then
  begin
    Query := TMDOSQL.Create(nil);
      try
        Query.Database := frmCnx.MDODatabase1 ;
        Query.Transaction := frmCnx.MDOTransaction3 ;
        Query.SQL.Text := 'SELECT Placas FROM ENTRADA WHERE Placas = :Valor';
        Query.ParamByName('Valor').Value :=
                                  MDOEntrada.FieldByName('PLACAS').AsString;
        query.ExecQuery ;
        try
          if Trim(Query.Fields[0].AsString) <> '' then
            begin
              showmessage('¡Estas Placas estan duplicadas!');
              Abort; //es correcto esto?
            end;
        finally
          query.Close ;
        end;
      finally
        query.Free;
      end;
  end
  else
  begin
    ShowMessage('El campo placas es necesario');
    Abort ;
  end;
end;
Responder Con Cita