Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2012
servicomp servicomp is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 154
Poder: 0
servicomp Va por buen camino
Cordial saludo

Primero que todo mis mas sinceros agradeciemientos por tu respuesta, la he tenido encuenta, pero voy a exponer un poco más la necesidad.

Tenemos el DBEdit, donde capturamos el codigo, lo que necesitamos es que al momento que el usuario salga del DBEdit o Pulse la Tecla Enter, Se tome el dato digitado por el usuario, y se lleva a un Query se verifica si el codigo existe y luego se decide que se hara.

Como se puede observa necesitamos validar la información antes que se grabe en el campo del registro la información, para que no cree el error.

Espero haber explicado correctamente el problema

y Agradezco de antemano la atención prestada
Responder Con Cita
  #2  
Antiguo 09-03-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
El evento OnChange del campo persistente parece el lugar más adecuado donde anclar esa comprobación.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 09-03-2012
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
Yo al evento OnChange le veo un problema y es que se lanza por cada caracter que escribes, me parece mejor en el evento OnExit del control.

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
  #4  
Antiguo 10-03-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola Marcos.

Cita:
Empezado por marcoszorrilla Ver Mensaje
Yo al evento OnChange le veo un problema y es que se lanza por cada caracter que escribes, me parece mejor en el evento OnExit del control.

Un Saludo.
No debería. El OnChange del TEdit sí que se dispara por cada carácter escrito, pero el OnChange del campo persistente solo debería dispararse cuando el TEDit termina la modificación y la traslada al Dataset (por ejemplo, al moverte a otro control).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 10-03-2012
servicomp servicomp is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 154
Poder: 0
servicomp Va por buen camino
Solicito mil disculpas a todos ustedes y muy especialmente al señor caral, por el comentario que escribí sobre el foro suyo, en realidad lo que había querido decir es sobre el tutorial que esta realizando, y que se ha publicado por este medio, se que muchos de los compañeros lo están leyendo y siguiendo.

Por ultimo espero que las disculpas sean aceptadas, y continuar adelante en el aprendizaje.
Responder Con Cita
  #6  
Antiguo 10-03-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Gracias por la aclaración, con eso es suficiente, no hace falta disculparse, fue un mal entendido.
En lo que pueda ayudarte y este a mi alcance, con gusto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 11-03-2012
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
Tienes razón Marc, en el OnChange del campo persistente, no en el control de pantalla que lo muestra, pues este último se lanza por cada carácter tecleado o eliminado.

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
  #8  
Antiguo 09-03-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Yo no usaría un DBEdit, si no un sencillo Edit.
Con esto lo que se escriba no tendrá relevancia hasta que se decida que hacer con el dato.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 09-03-2012
servicomp servicomp is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 154
Poder: 0
servicomp Va por buen camino
Con un sencillo Edit, lo tenemos funcionando en el momento, pero queremos llevar la evolución, a usar un DbEdit mi querido amigo.

Para el evento OnExit, lo que sucede es que primero me escribe la información del Campo en la tabla, y luego me dispara el evento, lo que no serviria para el proposito, pues el problema que se presentaría es que saldria un error de SQL.

De antemano les agradezco la atención y sus respuestas, pero sigue el hilo, ya que no he podido resolver el problema.
Responder Con Cita
  #10  
Antiguo 09-03-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Me voy por la opción de duilioisola, es la lógica.
Si la tabla esta en modo insert o edit busca el dato por medio del query si lo encuentra entonces envía el mensaje y no graba nada.
Sigo pensando que la mejor opción por seguridad es el edit ya que no esta directamente ligado a la tabla, si lo tienen así no lo modificaría.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 09-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Estoy de acuerdo con mi amigo Caral que con un TEdit se simplifica el tema. Pero si aún deseas hacerlo con un TDBEdit, creo que el evento indicado para evaluar la existencia (o no) es OnSetText del campo en cuestión.
El evento OnSetText se dispara cuando un valor es asignado a la propiedad Text del TField, pero antes de ser almacenado.

Entonces:
Código Delphi [-]
...
procedure TForm1.DataSetCpoSetText(Sender: TField; const Text: String);
begin
  with TuQuery do
  begin
    Close;
    SQL.Text:= 'SELECT TU_CAMPO FROM TU_TABLA WHERE TU_CAMPO = :DATO';
    ParamByName('DATO').AsString:= Text;  // (o convertir acorde al tipo)
    Open;
    if IsEmpty then
      raise Exception.Create('Dato inexistente');
    Close;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSet.FieldByName('TU_CAMPO').OnSetText:= DataSetCpoSetText;
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DataSet.FieldByName('TU_CAMPO').OnSetText:= nil;
end;
En el código superior asigno el evento en tiempo de ejecución para dar mayor claridad, pero si tenes creado el campo persistente lo podés hacer desde el Object Inspector.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 09-03-2012
servicomp servicomp is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 154
Poder: 0
servicomp Va por buen camino
Bueno creo que lo mejor es evolucionar a una solución dual, usar DBEdit y Edit, y seguir buscando una solución para el DbEdit, ya que no ha sido poco lo que he buscado en el foro, y como todo, alguna solución debe de tener, depronto no la he sabido buscar.
Responder Con Cita
  #13  
Antiguo 09-03-2012
servicomp servicomp is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 154
Poder: 0
servicomp Va por buen camino
Gracias EcFisa, lo ensayo de inmediato y si algo publicaremos aqui el codigo para que nuestro amigo Caral lo incorpore a su foro. Te comento luego como me va con esta propuesta.
Responder Con Cita
  #14  
Antiguo 10-03-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Cita:
Empezado por servicomp Ver Mensaje
Gracias EcFisa, lo ensayo de inmediato y si algo publicaremos aqui el codigo para que nuestro amigo Caral lo incorpore a su foro. Te comento luego como me va con esta propuesta.
No entiendo a que te refieres con esto ?.
Saludos
__________________
Siempre Novato
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
validar dbedit para horario gonza_619 Varios 3 12-12-2010 10:15:03
validar dbedit q muestra horario gonza_619 Varios 9 07-12-2010 19:52:46
validar un dbedit moyo18 Conexión con bases de datos 32 08-01-2009 20:19:11
Validar un Dbedit? kman Varios 10 13-03-2007 04:07:11
validar dbedit yeison Cristman Conexión con bases de datos 1 29-07-2006 21:55:56


La franja horaria es GMT +2. Ahora son las 22:25:58.


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