Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2005
Bitbanner Bitbanner is offline
Miembro
 
Registrado: ene 2005
Posts: 46
Poder: 0
Bitbanner Va por buen camino
COmo genero un mensaje antes de un Sysutils.Abort

Hola estoy con una base de datos acces y lo que quiero que me controle es cuando no se ha metido un campo requerido, ya he metido en BeforePost el sysutils.abort pero me falta mostrar un mensaje de error para el usuario.


gracias
Responder Con Cita
  #2  
Antiguo 11-02-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
En lugar de hacer un Abort (Que es una exception silenciosa) hacé un raise de un Exception.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 13-02-2005
Bitbanner Bitbanner is offline
Miembro
 
Registrado: ene 2005
Posts: 46
Poder: 0
Bitbanner Va por buen camino
ejemplo por favor

me puedes poner un ejemplo por favor no se como hacerlo, lo que yo tengo puesto es esto:



sysutils.Exception.Create('Debes de rellenar todos los campos en rojo');

y lo tengo puesto en la table en el evento BeforePost.


GRACIAS
Responder Con Cita
  #4  
Antiguo 13-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
De acuerdo, creas la excepción, solo falta lanzarla al mercado laboral

raise Exception.Create("Rellena todos los campos en rojo ");

saludos
Responder Con Cita
  #5  
Antiguo 13-02-2005
Bitbanner Bitbanner is offline
Miembro
 
Registrado: ene 2005
Posts: 46
Poder: 0
Bitbanner Va por buen camino
problema

ya lo he echo pero no mr sale nada de nadsa lo tengo de esta manera:

En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
sysutils.exception.create ('debes de rellenar los rojos');
end;

GRACIAS Y PERDONAR MI INGENUIDAD
Responder Con Cita
  #6  
Antiguo 14-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Bitbanner
ya lo he echo pero no mr sale nada de nadsa
No, no lo has hecho. Vuelve a leer con cuidado el mensaje de Lepe

// Saludos
Responder Con Cita
  #7  
Antiguo 14-02-2005
Bitbanner Bitbanner is offline
Miembro
 
Registrado: ene 2005
Posts: 46
Poder: 0
Bitbanner Va por buen camino
ok lo siento

ya me sale pero me manda un erro y la aplicacion se para y tengo que iniciarla lo que me gustaria que saliera es un mensaje como si fuera de un Showmessage o un MessageDlg si no es mucho pedir y perdonarme !!!
Responder Con Cita
  #8  
Antiguo 14-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si estás corriendo la aplicación desde el IDE entonces estás viendo el comportamiento normal: la aplicación se detiene en la línea donde ocurre la excepción y al continuar aparece tu mensaje. Esto no sucede si corres la aplicación independiente. También puedes ir al menú Tools|Debugger Options y en la ficha Language exceptions desmarcar la opción Stop on Delphi Exceptions para que no se detenga la aplicación al ejecutarla desde el IDE.

Si éste no es el problema entonces tendrás que explicar con más precisión.

// Saludos
Responder Con Cita
  #9  
Antiguo 15-02-2005
Bitbanner Bitbanner is offline
Miembro
 
Registrado: ene 2005
Posts: 46
Poder: 0
Bitbanner Va por buen camino
ok, perooo....

En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
raise exception.create ('debes de rellenar los rojos');
end;


Pero lo que yo quiero decir es que si podria hacer esto para que me mostrara unmensaje como este:


En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
ShowMessage ('Debes de rellenar los rojos')
raise exception.create;
end;
Responder Con Cita
  #10  
Antiguo 15-02-2005
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Código Delphi [-]
If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
  ShowMessage ('Debes de rellenar los rojos')
  Abort;
end;
__________________
E pur si muove
Responder Con Cita
  #11  
Antiguo 16-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Supongo que es cuestion de gusto y criterio, yo prefiero un Exception, ¿Por qué?

Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.

Ve el simbolo de error, se asusta, lo lee, y despues pulsa aceptar.
Responder Con Cita
  #12  
Antiguo 16-02-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Lepe
Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.
Si se trata de un sistema empresarial, creo que debemos "educar" al usuario a nuestro gusto. Las alertas son alertas y los errores son errores.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #13  
Antiguo 16-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por delphi.com.ar
Si se trata de un sistema empresarial, creo que debemos "educar" al usuario a nuestro gusto. Las alertas son alertas y los errores son errores.
¿Y en este caso qué es?



// Saludos
Responder Con Cita
  #14  
Antiguo 16-02-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por roman
¿Y en este caso qué es?
Yo di dos ejemplos, pero creo que eso se define junto con el análisis inicial del sistema.
¿Nos estamos llendo de tema?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #15  
Antiguo 16-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Decía un maestro que una alerta se usa para avisar al usuario de algo que puede ocurrir y un error para avisar de algo que ya ocurrió.

Esto tiene algo de lógica sólo que en este caso depende de cómo se vea. Si la verificación de datos faltantes se hace antes de hacer el post sería una alerta (oye usuario, no has puesto un valor y el servidor no lo va a aceptar) pero si la verificación se hace depués del post entonces sería un error (oye usuario, el servidor dice que falta un dato y ya protestó).´

Así que si nos guiamos por este estilo, en este caso tendría que ser una alerta. Lo que pasa es que en realidad el usuario no tiene idea de si la verificación se hace antes o después.

Por otra parte, el uso del abort después del ShowMessage, tal como lo propone marto, pues no es más que una excepción disfrazada de mensaje.

Así que en realidad todo es cuestión de gustos y mejor qe le den una taza de café al usuario para que se despabile.



// Saludos
Responder Con Cita
  #16  
Antiguo 16-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo lógico, a mi juicio, es prevenir al usuario de la omisión o inconsistencia de los datos para que no se produzca el error.

Y el usuario aunque no distinga "los galgos de los podencos", si apreciará un sistema que le avise con tiempo de sus incongruencias.

En consecuencia siempre se debe advertir al usuario, y lo que para nosotros es una alerta y se diferencia claramente de un error puede ser la misma diferencia que existe entre un error y una errata para quien sea capaz de distinguir el matiz.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #17  
Antiguo 16-02-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Cita:
Empezado por Lepe
Supongo que es cuestion de gusto y criterio, yo prefiero un Exception, ¿Por qué?

Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.

Ve el simbolo de error, se asusta, lo lee, y despues pulsa aceptar.
Bueno entonces USA
Código:
Código Delphi [-]
 Application.MessageBox('mensaje','Titulo',MB_yes+MB_ICONERROR);
y con eso tenes el error con icono.. verifica que el campo no este nulo y listo
Responder Con Cita
  #18  
Antiguo 16-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Enan0
Código Delphi [-]
 Application.MessageBox('mensaje','Titulo',MB_yes+MB_ICONERROR);

y con eso tenes el error con icono

Claro; pero, al menos yo, entre un ShowMessage con MB_ICONERROR seguido de un abort y un Exception no veo diferencia así que en tal caso me quedo con Exception.

// Saludos
Responder Con Cita
  #19  
Antiguo 16-02-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
si roman estas bien, pero si no queres generar una excesión bueno .. ahi esta otra posibilidad
Responder Con Cita
  #20  
Antiguo 16-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Enan0
pero si no queres generar una excesión bueno .. ahi esta otra posibilidad
Es que el abort es una excepción y de hecho de fuerza requieres la excepción para interrumpir el proceso. De lo contrario se hace el post y el servidor mandará el error.

// 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


La franja horaria es GMT +2. Ahora son las 19:01:02.


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