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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Como cambiar mensages en delphi y firebird

Hola De Nuevo Amigos
Les agradesco su ayuda ..
tengo una aplicacion en delphi y una base de datos en firebird e IBexpert
en la tabla de la BD que tengo son 4 campos y los e puesto que sean obligatorios "no null" en la aplicacion tengo los 4 dbedit que corresponden a cada campo tambien tengo un control navigator. el primer campo es la primary key .. lo que quisiera saber es como poner los mensages que me salen cuando no lleno un campo y le doy click en el post del navigator me sale el error en ingles"" field 'clave' must have a value"" tambien me sale otro mensage cuando le doy click en delet del navigator me sale un mensage de confirmacion ¿ delet field? quisiera saber como puedo cambiar esos mensage para yo poner mi propio mensage en español..
A qui les dejo un link para que se den una idea de como ise mi aplicacion
http://www.youtube.com/watch?v=nY4C3...eature=related
les agradesco su ayuda..
Responder Con Cita
  #2  
Antiguo 23-03-2010
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Creas una excepción y en la excepción colocas tu mensaje. OJO, esto de la excepciones funciona solo en runtime, es decir, ejecutas directamente el .exe o no con el compiler.

Código Delphi [-]
Try 
    Dataset1.Close;
Except
    Showmessage('Error de capa 8');
End;
Responder Con Cita
  #3  
Antiguo 23-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Cita:
Empezado por MAXIUM Ver Mensaje
Creas una excepción y en la excepción colocas tu mensaje. OJO, esto de la excepciones funciona solo en runtime, es decir, ejecutas directamente el .exe o no con el compiler.

Código Delphi [-]Try Dataset1.Close; Except Showmessage('Error de capa 8'); End;
hola
maxium gracias por tu ayuda donde devo poner la excepcion en que enveto o procedure..
Responder Con Cita
  #4  
Antiguo 24-03-2010
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Código Delphi [-]
// Avisa que este campo no puede ser nulo.
procedure TForm1.DBEdit5Exit(Sender: TObject);
begin
     If Trim(DBEdit5.Text) = '' then
     Begin
          ShowMessage('Debe ingresar un nombre o se borrara este registro');
          DBEdit5.SetFocus;
     End;
end;

// Elimina el registro cuyo campo requerido sea nulo.
procedure TForm1.IBDataSet1BeforePost(DataSet: TDataSet);
begin
     If Trim(DBEdit5.Text) = '' then IBDataSet1.Delete;
     IBDataSet1.Edit;
end;
Responder Con Cita
  #5  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola maxium
con la ayuda que me diste valide que los dbedit no este "no null" pero quisiera saber tambien como puedo mandar un mensage para que cuando se repita la clave (primary key) mande un mensage que diga "la clave ya existe"
y otra vez mucha gracias por tu ayuda..
Responder Con Cita
  #6  
Antiguo 24-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se de esto pero se me ocurre asi:
En el evento OnClick del DBNaviagtor:
Código Delphi [-]
procedure TForm1.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  If (TuTabla.State = dsEdit) or (TuTabla.State = dsInsert) 
    or (TuTabla.State = dsDelete) then
     begin
     If (DBEdit1.Text = ' ') or (DBEdit2.Text = ' ') 
     or (DBEdit3.Text = ' ') or (DBEdit4.Text = ' ') then
     showMessage(' debe colocar el dato');
     end;
end;
Si separas los if podras poner un mensaje por dbedit.
Espero te sirva, por lo menos sabras como no hacerlo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Gracias Caral..
Ahora Lo Que Quisiera Saver Es Como Mandar Un Mensage Cuando Se Repita La Clave Que Es La Primary Mandar Un Mensage "la Clave Ya Existe"
Gracias Por Su Atuda..
Responder Con Cita
  #8  
Antiguo 24-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tienes que hacer una sentencia sql que haga la comparacion con el dato que quieras.
la respuesta seria muy general sin datos como:
Que campos tienes en la tabla?.
Como los llamas?.
Es muy dificil contestar asi (por lo menos para mi).
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
HOLA CARAL
LA TABLA DE LA BD SE LLAMA AUTORES Y SU CAMPOS SON CLAVE,NOMBRE,APPATERNO,APMATERNO LA CLAVE ES LA PRIMERY KEY "LLAVE PRIMARIA" NO DEBE DE REPETIRSE. ENTOSES QUIERO SAVER COMO MANDAR UN MENSAGE QUE DIGA "LA CLAVE YA EXISTE" CUANDO SE REPITA LA CLAVE. A QUI TE DEJO UN LINK PARA QUE VEAS COMO CONECTE LA BD CON MI APLICACION http://www.youtube.com/watch?v=nY4C3...eature=related
GRACIAS CARAL POR TU AYUDA..
Responder Con Cita
  #10  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
http://www.youtube.com/watch?v=nY4C3bfTh1g&feature=related

mire que el link de arriba no es correcto asi que aqui lo vuelvo a poner
Responder Con Cita
  #11  
Antiguo 24-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Amigo bothy, recuerda que, en internet, escribir todo en mayúsculas equivale a gritar, y es algo que no está bien visto en ningún sitio de internet.
Por cierto, te recuerdo que esa norma y otras más las puedes encontrar leyendo la guía de estilo, gracias.
Responder Con Cita
  #12  
Antiguo 24-03-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
googleando... me encontré con un link que me remitia nuevamente al club... aquí está el post, podria ser de ayuda.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #13  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
hola de nuevo amigos
quisiera saver cómo detectar o saber por ejemplo la excepción del gestor de base de datos "Violation of UNIQUE KEY constraint XXXXX", "Cannot insert the value NULL into column YYYYY" o "INSERT statement conflicted with COLUMN FOREIGN KEY constraint" para cuando se presente mostrarle al usuario lo siguiente:


-"Cannot insert the value NULL into column YYYYY" = No puede insertar nulo en el campo xxx

-"Violation of UNIQUE KEY constraint XXXXX" = Registro duplicado

-"INSERT statement conflicted with COLUMN FOREIGN KEY constraint" = Referencia no existe.

Es decir atendiendo al error que me devuelva el gestor de base de datos mostraré mi mensaje personalizado. utilizo firebird e IBExpert
Responder Con Cita
  #14  
Antiguo 24-03-2010
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Defines un procedimiento para el tratamiento de errores y lo usas donde consideres oportuno, ej: evento OnPostError de los DataSet, al abrirlos, etc.


Código Delphi [-]
//Este lo puedes llamar desde el evento OnPostError de tus DataSets
procedure ErrorEnPost(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
  Action := daAbort;
  DataSet.Cancel;
  ErrorBaseDatos(E);
end;

// Este es el "genérico"
procedure ErrorBaseDatos(E: EDatabaseError);
begin
    if E is EIBInterBaseError
    then begin
      case EIBInterBaseError(E).IBErrorCode of
        $14000019: AvisoError('Aviso', 'Coincidencia en el uso del registro.' +#13+
                                       'Otro usuario lo tiene en uso.' +#13+
                                       'Inténtelo de nuevo.    -No es un error-'+#13+
                                       '---------------------------------------'+#13+
                                       'Error/Excepción FireBird: (' + E.Message + ')');
        $14000159: AvisoError('Aviso', 'Clave primaria duplicada.' +#13+
                                       'Ya existe un registro igual al selecionado (con el mismo ID).'+#13+
                                       'Intente esta operación de nuevo.    -No es un error-'+#13+
                                       '---------------------------------------'+#13+
                                       'Error/Excepción FireBird: (' + E.Message + ')');
        $14000037: AvisoError('No hay acceso a la Base de Datos',
                              'La base de datos no existe o '+#13#10+
                              'el servidor de FireBird está desactivado.'+#13+
                              '---------------------------------------'+#13+
                              'Error/Excepción FireBird: ' + E.Message);
        $140001A5: AvisoError('Se ha perdido la conexión con el servidor de FireBird',
                              'Se perdió la conexión con el servidor de FireBird.'+#13#10+
                              'Revise el equipo Servidor y compruebe que tiene'+#13#10+
                              'activo el servidor de FireBird. (Panel de Control/FireBird Server Manager)'+#13+
                              '---------------------------------------'+#13+
                              'Error/Excepción FireBird: ' + E.Message);
        $14000018: AvisoError('Error al abrir la Base de Datos',
                              'El sistema no puede hallar la Base de Datos especificada.'+#13#10+
                              'Compruebe que la ruta es correcta, el fichero existe'+#13#10+
                              'y el usuario tiene permisos de acceso.'+#13+
                              'Se cerrará la aplicación.'+#13+
                              '---------------------------------------'+#13+
                              'Error/Excepción FireBird: ' + E.Message);
        $14000191: AvisoError('No hay acceso al equipo servidor',
                              'No se ha podido establecer conexión ya que el equipo'+#13#10+
                              'de destino ha denegado activamente dicha conexión.'+#13#10+
                              'Compruebe el estado de su red y sus permisos dentro de la misma.'+#13+
                              '---------------------------------------'+#13+
                              'Error/Excepción FireBird: ' + E.Message);
        else Aviso('Error/Excepción FireBird: '+IntToStr(EIBInterBaseError(E).IBErrorCode)+#13#10#13#10+E.Message);
      end;
      SysUtils.Abort;
    end
    else ErrorNoBaseDatos(Exception(E));
  end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #15  
Antiguo 24-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
hola defcon1_es
hice lo que me pusiste en post agregue ala seccion uses "ib" para que no me marcara error el EIBInterBaseError pero noce porque me marca error en la linea
Código Delphi [-]
procedure TFromAutores.ClientDataSet1PostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Action := daAbort;
  clientdataset1.Cancel   ;
  //aqui el error
 ErrorBaseDatos(E);

end;
y tambien me marca error en todos los "AvisoError" y "aviso"
gracias por la yuda amigo..
Responder Con Cita
  #16  
Antiguo 25-03-2010
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Prueba a cambiar clientdataset1.Cancel por DataSet.Cancel;

Las funciones AvisoError y Aviso son de ejemplo, puedes cambiarlas por ShowMessage o similar.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #17  
Antiguo 25-03-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Cita:
Empezado por defcon1_es Ver Mensaje
Prueba a cambiar clientdataset1.Cancel por DataSet.Cancel;

Las funciones AvisoError y Aviso son de ejemplo, puedes cambiarlas por ShowMessage o similar.
hola de nuevo y gracias por ayudarme
cambie el dataset.cancel por el clientdataset.cancel y los avisos por showmessage pero en los mensages me marcaba error las comas asi que le puse el "+" y despues me marco error en
Código Delphi [-]
   else ErrorNoBaseDatos(Exception(E));
undeclaret identifier sale el error..
Responder Con Cita
  #18  
Antiguo 26-03-2010
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Fijate que el procedimiento ErrorBaseDatos espera como parámetro un objeto de la clase EDataBaseError, no de la clase Exception, por lo que no puedes hacer
Código Delphi [-]
else ErrorNoBaseDatos(Exception(E));

Sino que debes hacer la llamada asi:

Código Delphi [-]
else ErrorNoBaseDatos(E);
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
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
cambiar la clave de firebird desde delphi ingabraham Varios 1 06-02-2010 18:19:28
Como cambiar los atributos de un archivo con mi programa delphi JoAnCa Varios 2 23-07-2008 17:52:16
como puedo cambiar la fuente de Delphi - tipo de letra micky mouse Varios 6 07-03-2008 02:26:12
Como cambiar la condicion de un Group en FastReport desde Delphi 5 eljavi Varios 9 23-02-2007 20:08:54
mensages en red Jordy Varios 5 09-06-2005 22:20:31


La franja horaria es GMT +2. Ahora son las 12:17: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