Kayıt Kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
turgay
Üye
Mesajlar: 25
Kayıt: 22 Nis 2004 12:33

Kayıt Kontrol

Mesaj gönderen turgay »

Merhaba
Table kayıt eklerken aynı koddan kayıt yapmasını engellemek için kontrol koymak istiyorum. Aslında kaydet dediğimde kontrol çalışıyor ve aynı koddan kayıt yokse kayıt ediyor. Ben aynı zamanda kaydı değiştirmek için örneğin Değiştir butonuna tıkladığımda da aynı kontrolün çalışmasını istiyorum. Yani değiştir dediğimde kod da bir değişiklik yapmamışsam diğer alanları update etmek aynı zamanda kodda bir değişiklik yaptığımda da değiştirilen koddan başka olup olmadığını kontrol etmek. Sorun kaydetmek için koyduğum kontrolu update de eklersem kod da bir değişiklik yapmadığım zaman update etmek istediğim kod için de aynı uyarıyı veriyor. Bu koddan var değiştir. Ben değiştir dedikten sonra kod da bir değişiklik yapmadan diğer alanlada değişiklik yaptığımda bunu update edemiyorum. Aşağıda kodu gönderiyorum. Umarım anlatabilmişimdir.

if degistir=True Then
with ADOkayit do
begin
Close;
SQL.Clear;
SQL.Add('update tbstgrup set grstkod=:p,grsttext=:p1 where grpkimlik=:P_kod ');
Parameters[0].Value := Edit1.Text;
Parameters[1].Value := Edit2.Text;
Parameters[2].Value := ADOstgrupgrpkimlik.Value;
ExecSQL;
end;
ADOstgrup.Close;
ADOstgrup.Open;
end else
with ADOcontrol do
begin
Close;
Parameters[0].Value := Edit1.Text;
Open;
count := ADOcontrolcount.Value;
if count <> 0 then
begin
ShowMessage('Lütfen Kodu Değiştiriniz');
end else
if Edit1.Text='' Then
begin
ShowMessage('Lütfen Kodu Giriniz');
end else
if Edit2.Text='' Then
begin
ShowMessage('Lütfen Adı Giriniz');
end else
with ADOkayit do
begin
Close;
SQL.Clear;
SQL.Add('insert into tbstgrup (grstkod,grsttext) values (:P,:P1)');
Parameters[0].Value := Edit1.Text;
Parameters[1].Value := Edit2.Text;
ExecSQL;
ADOstgrup.Close;
ADOstgrup.Open;
end;
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod göndereceğiniz zaman "Code" yazan button' a basarsanız kodunuz daha düzenli olur,
diğer konuda önce forumda arama yaptırın, bu konular daha önce konuşuldu. Kısa sürede sorunuzu cevaplandırırsınız.
Tavsiyen UniqueIndex tanımla, Tbale yada Querynin OnPostError Event inde hatayı yakala. Bu programına performas artışıda sağlar. Yukarıdaki gibi kod yazıp SQL de olsa kayıt adedi çoğaldığında bir kayıt için çok fazla bekler.
İllaki kod ile yapılacaksa BeforePost eventinde Table Yada Query nin Locate() function ını kullanın, tabi bu kayıt yapılan Table Yada Query den farklı olmalı

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
turgay
Üye
Mesajlar: 25
Kayıt: 22 Nis 2004 12:33

hatayı yakalamak

Mesaj gönderen turgay »

Teşekkürler. Aslında UniqueIndex tanımladığımda sorunu çözüyorum. Dediğiniz gibi hatayı yakalayıp sorunu halledebiliyorum. Ancak ben SQL le yaparsam daha sağlıklı olur diye düşünmüştüm. Galiba yanılmışım. Zorlamaya gerek yok anladığım kadarıyla hata koduyla bu işi daha kolay ve sağlıklı yapabilirim.
İyi çalışmalar
Cevapla