Kayıt Kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
isahin4746
Üye
Mesajlar: 11
Kayıt: 12 Ara 2015 04:17

Kayıt Kontrol

Mesaj gönderen isahin4746 »

Arkadaşlar merhaba Aynı Kaydı Bir daha yapmak istemiyorum bu şekilde kod kullanıyorum bu seferde yeni yadı kayıt yapmıyor

Last İşlemini yanlış yerde mi kullanıyorum


procedure TDepoHucresi.kaydetClick(Sender: TObject);
var
bul: boolean;
begin
bul := Data.DepoR.Locate('DEPOR_RAFI', DBEdit1.Text, []);
if bul = true then
begin
Showmessage('Bu Depo Rafı Kayıtlı');
Data.DepoR.Last;
end;
end;
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: Kayıt Kontrol

Mesaj gönderen ihalilcoban »

Bu şekilde yapmak yerine veritabanı kısmında yapsan daha sağlıklı olur. Veritabanı olarak ne kullanıyorsun bilmiyorum ama ben firebirdde şu şekilde yapıyorum. Öncelikle indices alanından bir tane index tanımlıyorum örneğin TC Kimlik No kontrolü yapmak için TC_KIMLIK_NO_X şeklinde. Delphi kısmında ise kullandığım datesetin OnPostError kısmına şu kodu yazıyorum;

Kod: Tümünü seç

 if Pos('TC_KIMLIK_NO_X', E.Message)>0 then
    begin
    Application.MessageBox('Bu Üye Daha Önce Kaydedilmiş !!!','Uyarı Mesajı', MB_OK + MB_ICONERROR);
    Action := daAbort;
    Kursiyer_Karti.DBEdit1.SetFocus;
    end;
Bu şekilde delphi kısmında herhangi bir döngü veya filtreleme kullanmadan kontrolü veritabanıyla hallediyorum.
isahin4746
Üye
Mesajlar: 11
Kayıt: 12 Ara 2015 04:17

Re: Kayıt Kontrol

Mesaj gönderen isahin4746 »

Kabul Etmedi bende firebird Kullanıyorum ama Birleşen olarak IBDataSet1 yardımlarını rica ederim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Kayıt Kontrol

Mesaj gönderen greenegitim »

Aşağıdaki Şekilde Ayrı bir query de sorgulatabilirsin kaydetmeden önce

Kod: Tümünü seç

if qry_cariler.State = dsinsert then
    begin
 cumle:='';
cumle:=cumle+' and firmaid='+QuotedStr(IntToStr(firmaid));
cumle:=cumle+' and carikod='+QuotedStr(edt_CARIKOD.Text);

qry_uyari.Close;
qry_uyari.SQL.Text:='';
qry_uyari.SQL.Text:='select * from cariler where 1=1'+cumle+'';
qry_uyari.Open;
qry_uyari.FetchAll;

if qry_uyari.RecordCount > 0 then
begin
  ShowMessage('Bu Cari Kod Daha Önce Kullanılmış Lütfen Başka Bir Kod Deneyiniz');
  edt_CARIKOD.SetFocus;
  Abort;
end;
    
    end;

Mücadele güzelleştirir!
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: Kayıt Kontrol

Mesaj gönderen ihalilcoban »

Kabul etmedi derken hata mı verdi. Hata verdiyse hata mesajını paylaşır mısın? Ben sıkıntısız kullanıyorum bu şekilde.
AfterPost
Üye
Mesajlar: 158
Kayıt: 12 Tem 2014 10:22

Re: Kayıt Kontrol

Mesaj gönderen AfterPost »

Dbedit veri bilinçli bir bileşendir arama yapacaksınız farklı bir datasetten okutmanız gerekli
if farklıdataset.Locate('DEPOR_RAFI', DBEdit1.Text, [])=True then
begin
kayıt mevcut.....
end
else
begin
verilenirinizi buraya post edin..
güncellemeyi unutmayınız..

end;
Cevapla