Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2006
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
Manejo de Excepciones Intraweb

Buenas noches. Saludos desde Colombia.
De antemano gracias por la ayuda que puedan brindarme :
Intraweb 7.2.41 + Delphi 7 + [ADO] MSSQL.

Respetados amigos, en mi aplicacion de escritorio con delphi uso una "rutina" para cachear errores de base de datos [ADO], esa misma "rutina" la he adaptado a mi nueva WebApplication con Intraweb, pero tengo un error que no entiendo como poderlo corregir [[Error] UserSessionUnit.pas(133): Incompatible types: 'Parameter lists differ'], o talvez estoy errado en la forma de cachear los errores de mi base de datos.

En mi IWUsersession tengo una funcion llamada: MostrarMensaje y arribita declaro las constantes de errores ADO:

Código Delphi [-]
var
  IWUserSession: TIWUserSession;
const
  {Declare constants we're interested in}
  eKeyViol = -2147217873;
  eCRFalta = -2147467259;
  eConvert = 1240520;
  eForeignKey = 9733;
  eDetailsExist = 9734;
  eReglaMask = 1242448;
  eIntegridad = -2147217900;
implementation
uses ServerController;
{$R *.dfm}

Function MostrarMensaje(AException : Exception): Boolean;
Var iADOError: Integer;
begin
iADOError := 0;
if (AException is EDataBaseError) then
  iADOError := IWUserSession.ADOConn.Errors.Item[0].Number;
  case iADOError of
    eCRFalta:
    begin
      WebApplication.ShowMessage('Campo Requerido en la Base de Datos', smAlert);
    end;
    eKeyViol:
    begin
      WebApplication.ShowMessage('Violacion de restriccion en la Base de datos, Favor Verifica Datos', smAlert);
    end;
    eConvert:
    begin
      WebApplication.ShowMessage('Error de conversion de datos, Favor Verificar Datos', smAlert);
    end;
    eReglaMask:
    begin
      WebApplication.ShowMessage('Error Ingreso de datos, Favor Verificar Datos', smAlert);
    end;
    eIntegridad:
    begin
      WebApplication.ShowMessage('Error Integridad de Base de Datos, Favor Verificar Datos',smAlert);
    end;
  else
    WebApplication.ShowMessage(Pchar('Error de Base de datos.           '+#13+'#Error: '+IntToStr(iADOError)+#13+'Clase:'+AException.ClassName), smAlert);
  end;
end;

Luego tengo un procedure llamado Excepciones, el cual llama la funcion MostrarMensaje y manda la excepcion.

Código Delphi [-]
Procedure TIWUserSession.Excepciones(AApplication: TIWApplication; AException: Exception);
Begin
  If Not MostrarMensaje(AException) Then
    WebApplication.ShowMessage('Error de Base datos', smAlert);
End;

Al final en el evento Create de mi IWUserSession, escribo lo siguiente para la cacheada de los errores:

Código Delphi [-]
IWServerController.OnException := Excepciones;

Pero el error al intentar ejecutarlo es: [[Error] UserSessionUnit.pas(133): Incompatible types: 'Parameter lists differ'].

Como cito arriba en mi Applicacion de escritorio funciona bien, aunque el unico cambio que realice para adaptarlo a Intraweb fue en los parametros de la propiedad OnException.

Para Intraweb
Código Delphi [-]
 Procedure Excepciones(AApplication: TIWApplication; AException: Exception);

y asi se debe crear para Escritorio
Código Delphi [-]
Procedure Excepciones(Sender: TObject; E: Exception);

Agradezco cualquier norte ke me puedan brindar. saludos. Dabeto
Responder Con Cita
  #2  
Antiguo 11-08-2006
Avatar de geovany
geovany geovany is offline
Miembro
 
Registrado: sep 2004
Ubicación: El Fuerte Sinaloa
Posts: 165
Poder: 20
geovany Va por buen camino
Smile Hola

Primero que nada tu código se ve bastante interesante. Bueno pasando a lo siguiente.

El error es simplemente que no es mimo tipo el que te pide y el que le estan dando. Otra cosa que no me convence y no creo que eso te marque error es la asignacion del evento del servercontroller onexeption ese lo estan reasignando a una sesion diferente cada vez que un usuario se conecta y tercero no se si el mandar mensajes directamente del usersession este bien.

saludos
__________________
El Fracaso tiene mil explicaciones el Éxito no necsita explicación
Responder Con Cita
  #3  
Antiguo 11-08-2006
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
Muy buenos dias. Geovany gracias por tu respuesta.
Es una adaptacion de mi codigo para aplicacion de escritorio, pero soy nuevo con Intraweb, y no se que tan contraproducente puede ser el envio de mensajes desde mi IWUsersession??.

Alguna recomendacion para manejar excepciones en Intraweb??

Saludos.
Responder Con Cita
  #4  
Antiguo 11-08-2006
Avatar de geovany
geovany geovany is offline
Miembro
 
Registrado: sep 2004
Ubicación: El Fuerte Sinaloa
Posts: 165
Poder: 20
geovany Va por buen camino
Smile Try catch

Las excepciones las puedes cachar en la forma donde estas utilizando el acceso a datos con un try y catch y puedes obtener de que tipo es la excepcion y ahi hacer lo que tengas que hacer

saludos
__________________
El Fracaso tiene mil explicaciones el Éxito no necsita explicación
Responder Con Cita
  #5  
Antiguo 11-08-2006
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
Gracias Geovany.
Cuando te refieres a Acceso a Datos entiendo que utilice [Try...Except..End] al grabar los datos en mis tablas??, eso ya lo toy haciendo y anda bien, solo ke me gustaria centralizar el manejo de errores, pero gracias por tus buenas observaciones como siempre.

Saludos.
Responder Con Cita
Respuesta



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 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 excepciones try y except no funciona gulder Conexión con bases de datos 4 10-11-2005 14:50:00
manejo de excepciones el_barto Varios 4 08-06-2005 09:48:36
Ayuda con Manejo de Excepciones buffygcs SQL 2 21-04-2005 17:52:09


La franja horaria es GMT +2. Ahora son las 17:23:04.


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