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 29-07-2011
vmelga vmelga is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
vmelga Va por buen camino
Validación de Datos

Buenas Tardes:

No estoy seguro que esta sea la categoría correcta donde poner mi duda...pero bueno, tengo el siguiente problema: estoy programando un formulario en el cual estoy utilizando una grilla, el TdxDBGrid. Bueno, pasa que al ingresar un valor tengo que validar el dato si existe en una tabla, con eso no tengo problema, el problema esta en que si ese valor no se encuentra en la tabla se tiene que desplegar un mensaje y luego borrar el contenido de ese campo de la grilla y poner el foco en la misma. Lo de borrar el contenido y colocarle el foco es el problema. Ya probé de todo pero no logro hacer que realice eso.
Parece poca cosa, pero realmente no se porque no esta haciendo eso.
El codigo es el sgte:

with O_qery_auxi do //Tqery
begin
Close;
SQL.Clear;
SQL.Add('select * from 'tabla' where campo = x')
Open;
if Eof then
begin
O_dxmd_ModeMaesCDcampo.Value := ''; //men data
O_dxmd_ModeMaesCDcampo.FocusControl;
end;
Close;
end;

- De antemano muchas gracias!.
Responder Con Cita
  #2  
Antiguo 29-07-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

No se si ya te dijeron, pero te recomiendo que le des una leida a la Guía de Estilo.

Otra cosa, cuando publiques código fuente en Delphi, usa las etiquetas delphi:

[delphi]
begin
ProcedimientoAEjecutar;
Variable := 'hola mundo';
// ejemplo
end;
[/delphi]

lo que se mostrará en los foros así:

Código Delphi [-]
begin
  ProcedimientoAEjecutar;
  Variable := 'hola mundo';
  // ejemplo
end;

Ahora, no entiendo mucho lo que quieres hacer, ¿estás haciendo un formulario de búsqueda? Por que si es así, la forma en que lo estás haciendo no es la más indicada.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 29-07-2011
vmelga vmelga is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
vmelga Va por buen camino
Ya veo...disculpa, es que soy nuevo en el foro...

bueno, trataré de explicarme mejor, lo que quiero hacer es controlar el dato que se ingresa en una grilla...tengo que tomar el valor ingresado y si no se encuentra en una tabla dicho valor, tiene que borrar el valor de la grilla y posicionar el foco en la misma.

Pasa que ya probe de varias formas y no logro lograr que se comporte de esa manera.
Responder Con Cita
  #4  
Antiguo 29-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué pides el dato en un dbgrid?, explícanos más porque 'suena' raro.
Responder Con Cita
  #5  
Antiguo 30-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 vmelga.

Creo haberte entendido lo siguiente:

Tenés un DBGrid asociado a una tabla y cuando escribis sobre el mismo DBgrid en determinada celda, querés verificar si el valor de la misma existe en otra tabla. Y si no existe mostrar un mensaje, borrar lo escrito y posicionarte en la misma celda para volver a escribir.

Si es así, probá de la siguiente forma:
Código Delphi [-]
  private
    procedure CampoSetText(Sender: TField; const Text: String);
  end;
...
implementation

procedure TForm1.CampoSetText(Sender: TField; const Text: String);
begin
  if Text <> '' then
  begin
    TuQuery.Close;
    TuQuery.SQL.Clear;
    TuQuery.SQL.Add('Select * From TuTabla');  // tabla donde realizas la busqueda
    TuQuery.SQL.Add('Where Campo = :Dato');    // Campo a comparar con valor de la celda(Dato)
    TuQuery.ParamByName('Dato').AsString:= Text;
    TuQuery.Open;
    if TuQuery.IsEmpty then
    begin
      ShowMessage('Dato inexistente');
      TField(Sender).Value:= '';
      Abort;
    end
    else
      TField(Sender).Value:= Text;
    TuQuery.Close;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TuDataSet.FieldByName('TuCampo').OnSetText:= CampoSetText;  // Asignar evento al campo asociado a la celda a evaluar
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TuDataSet.FieldByName('TuCampo').OnSetText:= nil; 
end;

Con un TDBGrid, en lugar de referenciar al TDataSet, podrías hacer:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with DBGrid1.DataSource.DataSet do
    FieldByName('TuCampo').OnSetText:= CampoSetText;
end;
Pero ignoro si es igual para un TdxDBGrid.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-07-2011 a las 11:14:50. Razón: Agregar comentarios
Responder Con Cita
  #6  
Antiguo 01-08-2011
vmelga vmelga is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
vmelga Va por buen camino
Muchisimas gracias. Acabo de probar y funciona muy bien.
Como había dicho estoy empezando a usar Delphi y aun no tengo mucho conocimiento sobre el mismo, pero dentro de poco espero poder poner mi grano de arena también.
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
No ordenar los datos nuevos en un DBGrid y cosa rara con validacion desde el mismo antrahxg Conexión con bases de datos 2 08-03-2008 04:46:36
Validación de Datos Numéricos TelloClos Conexión con bases de datos 4 05-12-2007 03:40:44
validacion de datos pablo Varios 4 21-04-2005 15:32:46
Validación de contraseñas con Base de Datos. alfredosg19 Conexión con bases de datos 1 08-03-2005 18:31:20
validacion halifax Tablas planas 7 06-02-2005 23:25:53


La franja horaria es GMT +2. Ahora son las 10:57:38.


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