Ver Mensaje Individual
  #1  
Antiguo 06-02-2012
fwhite fwhite is offline
Miembro
 
Registrado: sep 2006
Posts: 37
Reputación: 0
fwhite Va por buen camino
Validar contenido campo para que no se repita

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
// Validamos el número de Socio
  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.
Responder Con Cita