Ver Mensaje Individual
  #11  
Antiguo 11-09-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Reputación: 15
camiz Va por buen camino
a ver en mi caso yo utilizo 2 Query, uno para dar de alta los registros (TQury1) y el otro exclusivamente para hacer este tipo de operaciones (TQuery2)
no se como has creado tu base de datos y cual campo es el que quieres comparar. un ejemplo
supongamos mi base es esta Y Pcedula es un campo donde vas a introducir un codigo unico que no se va ha repitir.

Código SQL [-]
CREATE TABLE tbeneficiario2
(
  ID_tbeneficiario2 Integer NOT NULL,
  FECHA Date,
  HORA Time,
  PCEDULA Varchar(15) NOT NULL,
  OTRO_1 Varchar(50),
  OTRO_2 Varchar(50), 
  OTRO_3 Varchar(20),
  PRIMARY KEY (ID_tbeneficiario2)
);



el DBEdit que va ha ir conectado a 'PCedula', es de nombre TEdit1.

Código Delphi [-]
procedure Tform1.Button1Click(Sender: TObject);
//buscamos y comparamos el codigo del TDBEdit
   if (TQuery2.Locate('CODIGO', TEdit1.Text, [])) and (TQuery2PCEDULA.Text = TEdit1.Text) then
    begin
   Application.MessageBox('Este código ya existe, debe crear otro para esta cedula.', 'Mensaje', MB_ICONSTOP or MB_OK);
  txt_arcodigo_repuesto.SetFocus;
  Abort;
   end
      else
   begin
TQuery1.Post;
end



Ten en cuenta que TQuery1 (es el que vamos a dar de alta) y Query2 (es el que vamos a mostrar o cargar los registros ya creados) a mi experiencia
es necesario que utises 2 TQuery para que no te de errores.
el codigo lo que hace es, ubicar en la tabla al registro que contenga los mismos caracteres del edit si es asi lo compara si son iguales
muestra el mensaje y cancela la creacion del registro y si no existe uno igual simplemente crea el registro.
ojo: el TQuery2 tiene que estar activo al momento que vas a ejecutar el codigo, porque es en este en el que vas a buscar y comparar.
Código Delphi [-]
TQuery2.Active := True;
espero averte explicado bien.

Última edición por camiz fecha: 11-09-2012 a las 00:48:15.
Responder Con Cita