Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2010
andressanchez andressanchez is offline
Miembro
 
Registrado: jul 2005
Ubicación: Sando Domingo, Rep. Dom.
Posts: 109
Poder: 19
andressanchez Va por buen camino
Manejo de excepciones de base de datos

Buenas tardes foristas

Estoy usando delphi 7, componentes ADO y como gestor de base de datos MS SQL Server 2000.

Tengo el siguiente problema, necesito capturar una excepcion del tipo EOleException y EDatabaseError y determinar que tipo de excepcion es para el manejador de la base de datos, es decir, si es por ejemplo una excepcion del tipo "violetion unique key" capturar la excepcion y mostrarle al usuario un mensaje personalizado y que lo entienda.

He buscado en el foro y lo que e encontrado no satisfe mi problema.

Otra cosa que e visto es que cuando me envia una excepcion del manejador de la base de datos me muestra tres excepciones seguidas de diferentes tipos cuando dispara la excepcion en mi entorno de desarrollo y son EoleExeption, eDatabaseError y EAccessViolation, y la ultima es la que toma en cuenta. Les adjunto el código que utilizo a ver si pueden ayudarme.

Código:
procedure TFrmMantPresenciaTecnica.btnGenerarObjetivosClick(Sender: TObject);
var
  InputString, Compania, Distrito, Supervisor, sMensaje: string;
  FechaInicial, FechaFinal: TDatetime;
  Proceso, CantidadEsperada: integer;
begin
try
   InputString:= InputBox('Digite la fecha', 'El proceso empezará a generar a partir del ' +
         DateToStr(qryPresenciaTecnicaFECHA.Value) + ' Hasta la fecha que usted digite a continuacion.', '');
   FechaInicial := qryPresenciaTecnicaFECHA.Value;
   FechaFinal := StrToDate(inputString);
sMensaje := 'Esta seguro que desea generar desde el ' + DateTostr(FechaInicial) + ' hasta el ' + DateTostr(FechaFinal) + '.';
if MessageDlg(sMensaje,
    mtConfirmation, [mbYes, mbNo], 0) = mrNo then
  begin
   ShowMessage('Operación cancelada por el usuario.');
   Abort;
  end;
 
if (FechaInicial >= FechaFinal) then
 begin
  ShowMessage('La fecha de inicio no puede ser mayor o igual a la fecha final');
  Abort;
 end;
FechaInicial :=  FechaInicial + 1;
qryPresenciaTecnica.DisableControls;
Compania := qryPresenciaTecnicaCODIGO_COMPANIA.Value;
Distrito := qryPresenciaTecnicaCODIGO_DISTRITO.Value;
Supervisor := qryPresenciaTecnicaCODIGO_SUPERVISOR.Value;
Proceso := qryPresenciaTecnicaCODIGO_PRODUCTO.Value;
CantidadEsperada := qryPresenciaTecnicacantidad_esperada.Value;

while FechaInicial <= FechaFinal do
begin
 qryPresenciaTecnica.Append;
 qryPresenciaTecnicaCODIGO_COMPANIA.Value := Compania;
 qryPresenciaTecnicaCODIGO_DISTRITO.Value := Distrito;
 qryPresenciaTecnicaCODIGO_SUPERVISOR.Value := Supervisor;
 qryPresenciaTecnicaCODIGO_PRODUCTO.Value := Proceso;
 qryPresenciaTecnicaFECHA.Value := FechaInicial;
 qryPresenciaTecnicacantidad_esperada.Value := CantidadEsperada;
 qryPresenciaTecnicaESTATUS.Value := 'REGISTRADO';
 qryPresenciaTecnica.Post;

FechaInicial :=  FechaInicial + 1
end;
qryPresenciaTecnica.EnableControls;
Showmessage('Proceso terminado correctamente.') ;
except
  {on e: Exception do
   begin
    Showmessage('Error Digitando la fecha.');
   end;}
  on e: EOleException do
   begin
    showmessage('ole exception')
   end;
  on E: EDatabaseError do
   begin
      showmessage('adoerror');
   end;
  on e: EAccessViolation do
   begin
    showmessage('error violacion de acceso');
   end;
end;
end;

Gracias de antemano,

saludos.-
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejo de consultas SQL y Base de datos metroyd Conexión con bases de datos 0 07-10-2007 22:31:37
Manejo de Excepciones anghell77 OOP 7 10-08-2006 18:46:48
No me sale el manejo de excepciones Torreblanca Varios 3 11-07-2006 18:32:45
manejo de la base de datos con sql altatrejo Conexión con bases de datos 0 22-08-2005 18:52:04
manejo de excepciones el_barto Varios 4 08-06-2005 09:48:36


La franja horaria es GMT +2. Ahora son las 10:52:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi