Hola amigos:
Estoy haciendo una aplicación y quiero validar el contenido de un campo en Paradox para que, si se repite, me envíe un mensaje y no ejecute el insert.
Además de la BD principal utilizo otra auxiliar, sobre la cual ejecuto un LOCATE, para saber si el contenido del campo ya existe.
Todo me lo hace bien, me localiza un registro que va a estgar duplicado, me envía el mensaje, me anula el registro que estoy introduciendo, pero me duplica el registro que localicé en la BD auxiliar.
El codigo es el siguiente:
Código Delphi
[-]
procedure TdmSocios.tbSociosBeforePost(DataSet: TDataSet);
var
vNumSoc: Integer;
begin
vNumSoc := tbSocios.FieldValues['Id_Socio'];
if tbValidaNumSoc.Locate('Id_Socio', vNumSoc, []) then
if tbSocios.State in [dsInsert] then
begin
MessageDlg('O número de socio ' + IntToStr(vNumSoc) + ' xa está adxudicado.'
+ #13 + #13 + 'Revisa os datos e fai as correccións oportunas',
mtConfirmation, [mbCancel], 0);
tbSocios.Delete;
end;
end;
Decirme que es lo que estoy haciendo mal. Graciñas.