Ver Mensaje Individual
  #1  
Antiguo 06-01-2007
Avatar de TrUnkS
TrUnkS TrUnkS is offline
Miembro
 
Registrado: dic 2005
Posts: 93
Reputación: 19
TrUnkS Va por buen camino
Question Extraño comportamiento de Firebird 2.0

Hola amigos. Quisiera comunicar un comportamiento extraño de este servidor, o no se si es por Delphi u otra cosa pero hace poco tiempo que estoy con Firebird y de pronto cambio su comportamiento. Uso Delphi 7 Second Edition Professional, componentes IBExpress (IBDataSet), IBExpert Personal Edition y Firebird 2.0.
Resulta que tengo solo 2 formas de que se provoque una excepción en el servidor, una por clave duplicada y otra cuando hay campos nulos en tablas Maestro/Detalle. Resulta que cuando trato de insertar un registro en el detalle y me faltan datos para el maestro en una misma transacción, en el momento de hacer Post en el maestro deberia producirse una excepcion por campo nulo ya que faltan datos de la tabla maestra que me impiden ingresar un nuevo registro en el detalle. En el evento OnPostError de la tabla maestra capturo la excepción para que cuando sea clave duplicada me aparezca un mensaje, y cuando falten campos por ingresar me aparezca otro mensaje. Es decir:
Código Delphi [-]
procedure TFDM.IBDataSetPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
case EIBError(E).IBErrorCode of
  ISC_UNIQUE_KEY_VIOLATION:
   begin
    ShowMessage('EL CLIENTE YA EXISTE EN LA BASE DE DATOS');
    Action:=daAbort;
   end
  else
   begin
    ShowMessage('DEBE LLENAR TODOS LOS CAMPOS');
    Action:=daAbort;
   end;
 end;
end;

Incluyo en el DataModulo las librerias IB, IBErrorCodes.

El problema es que anteriormente me funcionaba de maravilla, me aparecian los mensajes y el cursor se quedaba en el campo que faltaba por rellenar, pero ahora aparece este mensaje:
' Cannot focus a disabled or invisible windows' y el sistema se bloquea. Ahora al parecer ya no captura la excepción o no se que pasa. Pero cuando inicio de nuevo la aplicacion y lleno todos los campos de la maestra todo esta normal y me deja insertar registros en el detalle. Agradecería algún comentario si alguien me pudiera ayudar gracias.

Última edición por TrUnkS fecha: 06-01-2007 a las 05:09:32.
Responder Con Cita