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; end;
finally
query.Close ;
end;
finally
query.Free;
end;
end
else
begin
ShowMessage('El campo placas es necesario');
Abort ;
end;
end;