Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #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: 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 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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 02:12:45.


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