Merhaba arkadaşlar.Projemde T.C.Kimlik bilgisi girişi var.Tabi ki mantık olarak müşteri kayıt eklerken aynı kimlik bilgisi girişini engelleyen aşağıdaki yapıyı kullanıyorum;
procedure TForm1.mukerrer_kayit;
begin
with IBQuery1 do
begin
close;
sql.Clear;
sql.Add('Select * From TABLE1');
sql.Add('where KIMLIK =:kimlik');
params[0].AsString:=Edit4.Text;
open;
end;
if not IBQuery1.Eof then
begin
Application.MessageBox('Bu kişi zaten kayıtlı.Aynı kaydı tekrar giremezsiniz','UYARI !',4+0+48);
Abort;
end;
end;
Bazen müşterinin T.C.Kimlik Numarası o an bilinmiyor ve ben daha sonra girmek zorunda kalıyorum.Fakat şöyle bir sıkıntım var;Mesela boş geçsem ya da 'YOK' diye bir kayıt girsem bu sefer de yukarıda kullanılan kod gereği 'Bu kişi zaten kayıtlı.Aynı kaydı tekrar giremezsiniz' uyarısını tekrar veriyor.Burada tıkandım ve kaldım.Yardımcı olursanız sevinirim.
procedure TForm1.mukerrer_kayit;
begin
if trim(Edit4.Text) = '' then
exit;
with IBQuery1 do
begin
close;
sql.Clear;
sql.Add('Select * From TABLE1');
sql.Add('where KIMLIK =:kimlik');
params[0].AsString:=Edit4.Text;
open;
end;
if not IBQuery1.Eof then
begin
Application.MessageBox('Bu kişi zaten kayıtlı.Aynı kaydı tekrar giremezsiniz','UYARI !',4+0+48);
Abort;
end;
end;
procedure TForm1.mukerrer_kayit;
begin
if trim(Edit4.Text) <> '' then
begin
ibquery1.close;
ibquery1.sql.Clear;
ibquery1.sql.Add('Select KIMLIK From TABLE1 where KIMLIK =:kimlik');
ibquery1.params[0].AsString:=Edit4.Text;
ibquery1.open;
if ibquery1.fieldbyname('KIMLIK').asstring = edit4.text then
begin
Application.MessageBox('Bu kişi zaten kayıtlı.Aynı kaydı tekrar giremezsiniz','UYARI !',4+0+48);
Abort;
end;
end;
end;
procedure TForm1.mukerrer_kayit;
begin
if trim(Edit4.Text) = '' then
exit;
with IBQuery1 do
begin
Close;
sql.Clear;
sql.Add('Select count(*) From TABLE1');
sql.Add('where KIMLIK =:kimlik');
params[0].AsString:=Edit4.Text;
open;
end;
if IBQuery1.Fields[0].AsInteger > 0 then
begin
Application.MessageBox('Bu kişi zaten kayıtlı.Aynı kaydı tekrar giremezsiniz','UYARI !',4+0+48);
Abort;
end;
end;