aynı tckimlik nolu kişiyi kaydettirmeme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- huseyinert
- Üye
- Mesajlar: 233
- Kayıt: 19 Nis 2005 06:49
- Konum: Bartın
aynı tckimlik nolu kişiyi kaydettirmeme
merhaba arkadaşlar kayıt girişinde tckimlik no bölümünü girdikten sonra kaydet dediğimizde vt. nın da aynı tckimlik nolu kayıt varsa bu kayıt var şeklinde bir uyarı verip kaydetme işlemini iptal ettirmek istiyorum.
bunun için locate kullandım ama çalışmıyor. kullandığım kod şu şekilde
if query1.locate('tc',query1.fieldbyname('tc').value,[]) then
Showmessage('kayıt var')
else
query1.post;
bunun için locate kullandım ama çalışmıyor. kullandığım kod şu şekilde
if query1.locate('tc',query1.fieldbyname('tc').value,[]) then
Showmessage('kayıt var')
else
query1.post;
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
Selamunaleykum
kullandıgınız vt yi yazsaydınız daha iyi olurdu.
bu işlemi select sorgusuyla yapsanız daha hızlı ve daha garanti sonuc alacagınız kanaatindeyim.
gibi kullanabilirsin
kullandıgınız vt yi yazsaydınız daha iyi olurdu.
bu işlemi select sorgusuyla yapsanız daha hızlı ve daha garanti sonuc alacagınız kanaatindeyim.
Kod: Tümünü seç
SELECT tckimlik FROM xxx
bunu bir querynin icine yazıp
if query.recordcount = 0 Then
Begin
boyle bir kayıt yok
end else
begin
boyle bir kayıt var
end;
- huseyinert
- Üye
- Mesajlar: 233
- Kayıt: 19 Nis 2005 06:49
- Konum: Bartın
merhaba ,
@zyildiz' in önerisine ilave olarak,
bence genelde TQuery nin Recordcount özelliğine güvenmeyin eğer kayıt kontrolü yapılacaksa bence daha güvenilir olması açısından TQuery.IsEmpty fonksiyonu kullanın.
iyi çalışmalar.
@zyildiz' in önerisine ilave olarak,
bence genelde TQuery nin Recordcount özelliğine güvenmeyin eğer kayıt kontrolü yapılacaksa bence daha güvenilir olması açısından TQuery.IsEmpty fonksiyonu kullanın.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- huseyinert
- Üye
- Mesajlar: 233
- Kayıt: 19 Nis 2005 06:49
- Konum: Bartın
teşekkür ederim ama çalıştıramadım kodlamayı şu şekilde yaptım
data.hastakayit.Close;
data.hastakayit.SQL.Clear;
data.hastakayit.SQL.Add('select *from hastakayit where tckimlikno='+data.hastakayit.fieldbyname('tckimlikno').Value);
data.hastakayit.Open;
if data.hastakayit.RecordCount=0 then
begin
data.hastakayit.Post;
end
else begin
Application.MessageBox('kayıt var','Uyarı',0+48);
end;
acaba nerede problem var
data.hastakayit.Close;
data.hastakayit.SQL.Clear;
data.hastakayit.SQL.Add('select *from hastakayit where tckimlikno='+data.hastakayit.fieldbyname('tckimlikno').Value);
data.hastakayit.Open;
if data.hastakayit.RecordCount=0 then
begin
data.hastakayit.Post;
end
else begin
Application.MessageBox('kayıt var','Uyarı',0+48);
end;
acaba nerede problem var
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA
merhaba ,
database de tckimlik alanınız numeric bir değerse sorun yok gibi görünüyor ama numeric değilse ozaman query e eklediğiniz cümleyi şu şekilde değiştiriniz.
iyi çalışmalar.
database de tckimlik alanınız numeric bir değerse sorun yok gibi görünüyor ama numeric değilse ozaman query e eklediğiniz cümleyi şu şekilde değiştiriniz.
Kod: Tümünü seç
data.hastakayit.SQL.Add('select *from hastakayit where tckimlikno='+''''+data.hastakayit.fieldbyname('tckimlikno').Value)+'''';
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
merhaba;
iyi günler....
şöyle yapabilirsin benim yaptığım gibihuseyinert yazdı:teşekkür ederim ama çalıştıramadım kodlamayı şu şekilde yaptım
data.hastakayit.Close;
data.hastakayit.SQL.Clear;
data.hastakayit.SQL.Add('select *from hastakayit where tckimlikno='+data.hastakayit.fieldbyname('tckimlikno').Value);
data.hastakayit.Open;
if data.hastakayit.RecordCount=0 then
begin
data.hastakayit.Post;
end
else begin
Application.MessageBox('kayıt var','Uyarı',0+48);
end;
acaba nerede problem var
Kod: Tümünü seç
e1tut:=e1.Text;
With IBQuery1 do
begin
close;
SQL.Clear ;
SQL.Add('select * from CARIKART where KOD='''+e1tut+'''');
try
open;
except
Showmessage('Hata : '+IBQuery1.Text);
end;{try}
end;{with}
if IBQuery1.FieldByName('kod').Value<>null then
showmessage('Kayıt var');
else
showmessage('Kayıt yok');
Birşey dikkatimi çekti eğer o an bilgi girdiğiniz query ile sorguyu yaptığınız query aynı ise ki yukarıdaki kodlardan anladığım kadarıyla öyle zaten sonuca ulaşmanız imkansız. Sorgunuzu farklı bir query ile yapmalısınız.
Ayrıca bende kesinlikle @mussimsek hocamın fikrine katılıyorum..
Ayrıca bende kesinlikle @mussimsek hocamın fikrine katılıyorum..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul
Kod: Tümünü seç
Qr.Active:=false;
Qr.Sql.Clear();
Qr.Sql.Add('Select count(*) as kayitsayisi from tblHastkayit where tcno='+tcno);
Qr.Active:=true;
if Qr.Fieldbyname('kayitsayisi').asinteger > 0 then
begin
showmessage('Bu Kayıt Zaten Var!');
end
else
begin
table.post;
end;
locate komutuda kullanılabilir ama komutu yanlış kullanmışsın. tercih senin. bende mussimek'e katılıyorum unique yapmak en iyisi.
locate şu şekilde
şeklinde olmalı. burda bir yanlışlık daha var. queryi locate ettiğin için insert olayın iptal olur. qury insert etmeden önce girilne bilgiye göre kontrol yapmalısın. bu nedenle lookup kullanabilirsin.
locate şu şekilde
Kod: Tümünü seç
if query1.locate('tc',varofarray([query1.fieldbyname('tc').value]),[]) then
Showmessage('kayıt var')
else
query1.post;
arkadaşlar diğer yöntemlerin hepsinde ŞİŞERSİNİZ.... ne kadar iyi kod yazarsanız yazın, kullanıcılar bir şekilde ikinci kayıdı yapacaktır. Yıllarca aynı yöntemleri uygulamış biri olarak, kullanıcının nasıl data kaydedebildiğine şaşarsınız. Az uğraşmadım bu tip yanlış datalarla 
Tek yol unique index.
Kolay gelsin.

Tek yol unique index.
Kolay gelsin.
- huseyinert
- Üye
- Mesajlar: 233
- Kayıt: 19 Nis 2005 06:49
- Konum: Bartın
teşekkürler
arkadaşlar hepinize teşekkür ederim işlemi gerçekleştirdim
"Kula bela gelmez Hak yazmayınca,Hak bela yazmaz kul azmayınca..." MEVLANA