ADO ile Append ve Edit

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

ADO ile Append ve Edit

Mesaj gönderen ikra »

Yine ben :)

yine ilginc bir sey ile karsilastim kodlari aynen yaziyorum daha sonra da karsilastigim ilginc seyi aciklayacagim

Kod: Tümünü seç

IF Qkommunikation.RecordCount > 0 Then Qkommunikation.Edit Else Qkommunikation.Append;
    QkommunikationMitarbeiterNr.Value := QmitarbeiterMitarbeiterNr.Value;
    Qkommunikationtelefon.Value := Telefon.Text;
    Qkommunikationmobil.Value := Mobil.Text;
    Qkommunikationemail.Value := Email.Text;
    Qkommunikation.Post;
simdi arkadaslar form u göstermeden önce kisiye ayit komunikayson bilgisi olup olmadigi kommunikation tablosundan kontrol ediliyor ve eger var ise dbedit in icine yansiyor... form aciliyor ve eger telefon numarasi var ise Edit yapmali eger yok ise append yapmali... bu kodu kullandigimda eger kayit var ise update ediyor yani edit calisiyor. fakat eger bilgi yok ise ve kayit olusturdugumda append islemini iki defa gerceklestiriyor... Tablo icerisinde iki kayit görünüyor birincisi index yani telefon numarasinin sahibinin ID no su ikinci kayitta ise diger bilgiler var bu sefer ikinci kayitta ID yok. bunun sebebi ne olabilir? neyi nerede yanlis yapiyorum???

umarim ifade edebilmisim dir...


saygilar...[/code]
zyildiz
Üye
Mesajlar: 115
Kayıt: 09 Mar 2004 01:22
Konum: Adapazarı

Mesaj gönderen zyildiz »

yapmak istediğiniz işlemleri

if .....then
begin
.
end else
begin
.
end
blokları arasına yazsanız durum daha net gorülebilir kanaatindeyim.
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

IF Qkommunikation.RecordCount > 0 Then 
begin
Qkommunikation.Edit; 
..................
.....................
end
 Else 
begin
Qkommunikation.Append; 
......................
................
QkommunikationMitarbeiterNr.Value := QmitarbeiterMitarbeiterNr.Value; 
  Qkommunikationtelefon.Value := Telefon.Text; 
    Qkommunikationmobil.Value := Mobil.Text; 
    Qkommunikationemail.Value := Email.Text; 
    Qkommunikation.Post; 
end;
end;
Hocamın dediği gibi bu şekilde daha sağlıklı olur kanaatindeyim..
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

öncelik ile ilginiz icin cok tesekkür ederim...
dediginiz gibi denedim fakat sonuc ayni. degisen hic bir sey yok... bende sasirmis durumdayim. ilginc seyler oluyor...
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

kodun tamamı yukarıda verdiğiniz gibimi yani bundan başka birşey yazıyormusunuz..istersen biraz daha açsarsan sorunu bizde bir adım daha atmış oluruz.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ben yeni kayıt eklerken insert kullanırım, hiç böyle bir problemle karşılaşmadım. Siz de insert kullansanız?
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

Insert komutunu da denedim ama sonuc ayni... yalnizca bu tabloda hata yapiyor diger tablolarin hic birinde böyle bir sey söz konusu degil... bütün source'u bastan sona check yaptim hic bir yerde ikinci bir kez Post olayi vuku bulmuyor... hala anlamis degilim neden oldugunu. ama günün birinde bulur isem tecrübe edinsinler diye büyük harfler ile aciklayacagim : ))
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

özür dilerim düzeltiyorum... 3 ayri tabloda böyle bir olay gerceklesiyor. diger 20 kadar tabloda böyle bir sorun yok...
Kullanıcı avatarı
spoke25
Üye
Mesajlar: 434
Kayıt: 16 May 2005 04:06
Konum: Bolu

Birede recordcount proceduru icin

Mesaj gönderen spoke25 »

Bernde uzun zaman recordcount proceduru ile uğrastım ve syle birsey buldumm.. table in kayit sayisinin 0 olup olmadigini degilde isempthy yani bos olup olmadigini kontrol edirmelisin.. bence birde data modülde kullandigin baska bir kod olup olmadigini kontrol et. saatlerce gunlerce asla bir hata yok dedgimii hatirliyorum fakat hep kazanan bilgisayar oldu.. Mutlaka vardir. Gızden kacirdigin bir yer saygialarimla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

isempty derken tablonun bos olup olmadigini kontrol ediyoruz. oysaki tabloda o sahisa ayit olan bir kayit var mi yok mu onu kontrol etmeliyim. cünkü tablo bos degil. datamodul u da kontrol ettim hic bir yerde bu tablo ile alakali kod yok... sasirdim kaldim... bunca zaman gecti hala bir cözüm bulamadim. isin enteresan tarafi append ve insert dedigimde kayit i cift ekliyor ve edit dedigimde ise tek kayit ekliyor. yani append ve insert in yapmasi gereken islemi edit yapiyor... fakat edit e güvenemiyorum cünkü ileride bir sorun cikartabilir...

ilginiz icin tesekkür ediyorum...

umarim en kisa zamanda cevap bulabiliriz...
kıdemsiz üye
Cevapla