Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema al validar DBEdit con ADOQuery (https://www.clubdelphi.com/foros/showthread.php?t=65710)

mgp2401 08-01-2010 15:59:01

Problema al validar DBEdit con ADOQuery
 
Estoy haciendo un proyecto para la escuela y quiero validar un DBEdit para no introducir datos ya existentes en una tabla. Funciona si el dato introducido ya existe y me muestra el correspondiente mensaje pero si el dato es nuevo no me permite continuar con el resto. Si me pueden ayudar se los agradesco, soy principiante en Delphi. La BD es en Access. Aqui les pongo el código por si lo necesitan.
procedure TNTecForm.DBEIdExit(Sender: TObject);
begin
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from NTecnicos where cod_tecnico =' +DBEId.Text); ADOQuery1.Open; //abro la consulta
if ADOQuery1.IsEmpty then//si el resultado de la consulta esta vacia...
begin
DBENombre.SetFocus;
end
else
ShowMessage('Ese codigo ya existe');
DBEId.Clear;
DBEId.SetFocus;

end;
end;

ContraVeneno 08-01-2010 16:12:39

Lo más recomendable, sería poner esa validación en la base de datos, no en el programa...

pero si lo quieres por programa:

la idea de usar "With ADOQuery1 do begin" es que no tengas que escribir adoquery1 en cada línea, ya que delphi lo reconocerá...
Código Delphi [-]
procedure TNTecForm.DBEIdExit(Sender: TObject);
begin
with ADOQuery1 do begin
 Close; 
 SQL.Clear; 
 SQL.Add('select * from NTecnicos where cod_tecnico = :Codigo'); 
 parameters.paramByName('Codigo').Value := DBEId.Text;
 Open; //abro la consulta
 if IsEmpty then begin//si el resultado de la consulta esta vacia...
  DBENombre.SetFocus;
 end else begin
  ShowMessage('Ese codigo ya existe');
  DBEId.Clear;
  DBEId.SetFocus;
 end; //If IsEmpty
end; //with
end; //procedure


La franja horaria es GMT +2. Ahora son las 07:43:24.

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