key voliation ve try-except olayı.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

key voliation ve try-except olayı.

Mesaj gönderen y.kulac »

s.a.
arkadaşlar, tabloya kayıt girerken btn_kaydet in click olayına
şu kodu yazdım.

begin
try
begin
table1.open;
table1.edit;
table1.Post;
end;
except
ShowMessage('Kaydetme hatası... Lütfen bilgilerinizi kontrol ediniz');
end;

sorunum şu; aynı kaydı tekrar girmeye kalkınca yukarıdaki uyarıyı
gösteriyor. "key voliation" uyarısını göstermiyor. zaten göstermesini
istemediğim için try-except bloğunu kullandım. uyarıyı kapattıktan
sonra formdaki hangi butona basarsam basayım bu sefer "key voliation"
uyarısını veriyor. başka bir butona basınca tekrar aynı uyarıyı gösteriyor.
bu böyle sürekli devam ediyor. formu kapatıp tekrar açınca normale dönüyor.
bunu önlemenin bir yolu var mıdır? ben sadece benim istediğim uyarı hatasını
vermesini istiyorum. "key voliation" uyarısını göstermesin ve formu tekrar tekrar
açıp kapatma istemiyorum. neler önerirsiniz.

herkese iyi çalışmalar diler saygılar sunarım.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Except bloğunda Table kapatmayı denedinizmi?


Kolay Gelsin...
İyi Geceler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

key voliation hatası key olarak seçilen alana aynı kaydı yapmak istediğinizde verir.
Hüseyin'in de dediği gibi except bloğunda close olayını kullanırsan sorunun çözülür.
zaten kodunda bir hata var open demişsin ama close yok arka arkaya 2 kayıtta tabloyu açarsan sorun çıkar zaten tablo açık.
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

table edit modda kalıyor ,except end arasında table.cancel yapmalısın
ÜŞENME,ERTELEME,VAZGEÇME
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

Merhabalar,
Table in onposterror kısmına aşağıdaki kodu yazarsan istediğin olur.

Kod: Tümünü seç

procedure Tdm.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
    begin
      MessageDlg('Bu AdayNo Numarası Daha Önce Verilmiş'+#13+#10+
           'Aynı Numara Tekrar Verilemez!!', mtWarning, [mbOK], 0);
      Abort;
     end;
anaFrm.DBEdit1.SetFocus;// key olan alanın dbedit'i
end;
Kolay gelsin
saygılar
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bir kaç öneri ve yorum yapılmışsa da sorudan ve kodlardan tam olarak ne istendiği anlaşılamıyor :!:

Ne yapmak istediğinizi detaylandırırsanız emin olun ki sonuca daha çabuk ulaşırsınız :!:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla