Ver Mensaje Individual
  #1  
Antiguo 09-04-2005
PINO72 PINO72 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Málaga - España
Posts: 40
Reputación: 0
PINO72 Va por buen camino
Angry OnValidate .. No funciona en IB?

Hola amigos:

Leed el siguiente fragmento :

procedure TFichaProveedores.IBProveedoresCCODPROVValidate (Sender : TField);
Var s: String;
begin
// Primero formateo el string para que añada ceros a la izquierda en caso
// de ser inferior a 6 caracteres numéricos.

s:= Format ('%.*d',[6,Strtoint(Sender.AsString)]);

With IBSQLExisteProv do //IBSQL con un Select y el parámetro PROVEEDOR
begin
ParamByName('PROVEEDOR').AsString:= S;
ExecQuery;
If RecordCount > 0 then
DataBaseError ('Código de Proveedor Duplicado') ;
close;
end;
end;

Pues bien : Este método de validación debería mostrar el mensaje de error cuando en la base exista el código duplicado. He comprobado que el IBSQL funciona correctamente, es decir : RecordCount ha llegado a tener valor 1. El problema sobreviene en la ejecución de la excepción, pues ni aparece ningún mensaje de error ni me permite seguir capturando otros datos en la ficha. Por otra parte el estado de inserción de la tabla permanece durante todo el proceso.

¿Puede ser un bug de los IBX?

Gracias de antemano.

Utilizo : IB.7.1 - IBX 7.09 - Delphi 7 y la ficha trabaja con controles DBAware.
Responder Con Cita