Ver Mensaje Individual
  #8  
Antiguo 02-06-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que si no sigue es porque la excepción que salta no es la que esperas en el WHEN EXCEPCION DO...
Prueba a poner WHEN ANY DO...

O prueba a ver cuál es la excepción que llega con un ShowMessage.
Código Delphi [-]
sentencia := 'EXECUTE PROCEDURE PROCESA_VISITA (variables)';
      try
        Q1.Close;
        Q1.SQL.Clear;
        Q1.SQL.Add(sentencia);
        Q1.Prepare;
        Q1.ExecQuery;   //AQUI DA LA EXCEPCIÓN
        Q1.Transaction.CommitRetaining;
        Q1.FreeHandle;
      except
         on e:exception do 
         begin
            Showmessage(e.message); //Esto te mostrará el texto de la excepcion
           Q1.Transaction.Rollback;
           Q1.FreeHandle;
           raise;
         end;
      end;

Por más que le digas que haga un commit, si ha saltado una excepción no grabará los datos.
Si quieres envíanos el código de tu procedimiento, para que le hechemos una mirada.
Pero como dije anteriormente, quizás sea mejor filtrar los casos para los que se dá la excepción.
Responder Con Cita