Aynı Kaydın iki Kez Girilmesini Engellemek ?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
gece_kurdu
Üye
Mesajlar: 10
Kayıt: 01 Nis 2006 11:06
İletişim:

Aynı Kaydın iki Kez Girilmesini Engellemek ?

Mesaj gönderen gece_kurdu »

Arkadaşlar bir teklif modülü üzerinde çalışmaktayım teklif modülünde malzeme tablosu var ve malzeme tablosunda malzeme numarası alanı (MNO) Bu alana iki kez aynı kaydın girilmemesin istiyorum aynı ismi taşıyan 2. kayıt girilmek istediğinde hata mesajı nasıl verdirebilirim. Yardımlarınızı bekliyorum Şimdiden çok teşekkür ediyor iyi çalışmalar diliyorum...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

MNO alanını primary key yapın veya unique indeks ekleyin. Kullanıcı girmek istese bile hata alacaktır.

Kolay gelsin.
gece_kurdu
Üye
Mesajlar: 10
Kayıt: 01 Nis 2006 11:06
İletişim:

Mesaj gönderen gece_kurdu »

üstat ilgine teşekkür ederim çok çabuk cevap yazmışsın ama ben onu daha önce denedim bu şekilde hiç hoş olmayan bir hata veriyor. kullanıcıya bu Malzeme numarası kayıtlı yeni malzeme numarası veriniz gibi bir mesaj verdirmek istiyorum.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Anahtar kelimelerle lütfen arama yapalım. Çözüme çok daha hızlı ulaşacaksınız :idea:
viewtopic.php?t=17526&start=15
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

locate kullanabilirsin.

Kod: Tümünü seç

 if not table.locate('alanadı',x.text,[]) then 
begin
Showmesssage('Bu kayıt zaten var');
Abort;
end;
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

En basit şekliyle POST işlemini try except end bloğuna alıp hatayı kontrol edip istediğin mesajı verdirebilirsin:

Kod: Tümünü seç

try
  Table1.Post;
except
  on Ex: Exception do
  begin
    if Pos('Key violation', Ex.Message) > 0 then
      raise Exception.Create('Aynı kaydı giremezsiniz.')
    else
      raise;
  end;
end;
gibi.

İyi çalışmalar.
Cevapla