Bug

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Bug

Mesaj gönderen husonet »

Slm,
Arkadaşlar dün yazmış olduğum programın bitmiş olan bölümleri için test yapıyordum bir bug yakaladım.

olay: ekleme değiştirme ve listeleme için üç form kullanıyorum ekleme ve değiştirme formları database bağlantısını listeleme formundan AdoDataSet aracılığı ile yapıyor. Programım bug yapma yeri yeni veri eklemek için ekleme formunu çağırıyorum ekleme işlemlerini yaptırtıyorum ve işlemim bittikden sonra kayıtları veri tabanına yazdırıyorum burada bir problem çıkmıyor yalnız yeni eklediğim kaydı düzenlemek için açıp değiştirmek istediğim de hata alıyorum. Ben bu olayı ekleme formunda AdoDataSet i kapatıp tekrar açmak la çözdüm fakat başka bir yolla çözülebilirmi.

Beni bu konuda bilgilendirirseniz sevinirim.

İyi çalışmalar.
En son husonet tarafından 24 Eyl 2003 01:46 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hata nedir peki?

Kolay gelsin.
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

adodataset

Mesaj gönderen mehmet_turecan_cakmak »

selam...

hocam aynı hata benimde başıma gelmişti programı kapatıp açınca hatayı gideriyordum mustafa hocam bu konu ile ilgili bir kod göndermişti ama o kodu kaybettim ama adodataseti update etmek ile ilgili birşeydi galiba...inşallah yardımcı oabilirim...

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

Mesaj gönderen husonet »

hata mesajı : Project HUSOCHIP.EXE raised exception class EOleException with message 'Satır güncelleştirme için bulunamıyor. Son okunduğundan bu yana bazı değerler değiştirilmiş olabilir'. Process stopped. Use Step or Run to continue.

İyi Akşamlar.

web: http://www.durmus.net
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

sanırım şu mesaj işini görür : viewtopic.php?t=346

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Günaydın

Problemim halen devam ediyor aynı mesajı almaya devam ediyorum. Sizce eksik yapmış olduğum ne olabilir.

Saygılar.....
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

adodataset

Mesaj gönderen mehmet_turecan_cakmak »

günaydın...

hocam bu sorunu bende halen çözebilmiş değilim demiştim ya aynı sorunu bende yaşadım diye ama aklıma şöyle bişey geldi bir işlem yapmadan önce mesela silme kaydetme vb. adodataseti güncelle tabi bu güncelle yani refresh et buna istinaden benima klıma şöyle bi kod geldi

adodataset1.update:=true;

tabi bu kod çalışırmı bilmiyorum çünkü daha bende denemedim eger siz denerseniz banada bi haber verin :lol: çünkü şu sıralar bilgisyara hasret kaldım...

iyi çalışmalar...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Ado'nun çalışma mantığını biraz anlatıyım hocam;

Sen bir update veya delete işlemi yaptığın zaman, ADO arka planda bir SQL cümlesi oluşturur ve bunu veritabanına gönderir. Mesela no, ad, soyad diye 3 alanı olan bir tablon olsun ve

1, Mustafa, Şimşek

silmek istiyorsun. ADO bunu arka planda

DELETE FROM FALANCA_TABLO
WHERE (NO=1) AND
(AD='Mustafa') AND
(SOYAD='Şimşek')

şekline dönüştürür. Sen bu arada eğer herhangi bir nedenle bu alanlardan birini değiştirirsen, kayıt bulunamaz.

Bir ara bende de oluyordu bu hata. Ben KULLANICI tablosuna kullanıcının son girdiği tarihi ve saati yazdırıyordum, kayıtta SON_GIRIS_TARIHI alanı kullanıcı giriş yapınca değiştiği için sorun çıkıyordu.

Benim önceki mesajımda gönderdiğim kod, tüm alanlar yerine sadece primary key'i baz alıyor. Yani WHERE satırı kısmına tüm alanlar yerine sadece Primary Key'leri koyuyor. Mesela yukardaki örnek tabloda primary key NO ise oluşan SQL cümlesi :

DELETE FROM FALANCA_TABLO
WHERE (NO=1)

şeklinde olacak.

Çözüm önerileri :

* Primary key yoksa, primary key ekleyin.
* Hangi alanlarda update (güncelleme) yapıyorsunuz onlara bir bakın, gerekirse düzeltme yapın o kısımlarda.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam primary key ACCESS veritabanında ki tablolardaki birincil anahtar olan bölüm mü oluyor?

Birde hocam dataset i kapatıp açmakta sorunu çözüyor bunu kullansak iyi bir teknik olurmu.

Bu konuda bilgi verdiğiniz için teşekkür ederim.
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

adodataset

Mesaj gönderen mehmet_turecan_cakmak »

selamlar...

hocam kusuruma bakmayın ama primary key nasıl ekleniyor birde husonetin dediği gibi dataseti kapatıp açmak problemi çözüyor bişey daha o kafamdan uydurduğum ve benim denemediğim kod işe yararmı...

iyi çalışmalar...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam veritabanına göre değişiyor primary index olayı. Türkçe karşılığı evet birincil index olarak geçiyor. Ancak Access'te nasıl ekleniyor dersen bilmiyorum.

Dataset'i kapatıp açmak uygun bir yöntem değil. Kayıt sayısı azken belki problem olmayabilir, ancak kayıt sayısı artmaya başlayınca aşırı yavaşlar program.

Mehmet hocam : Ado'da Refresh olayları biraz kıl diye aklımda kalmış. Mümkün olduğu kadar kaçınmak lazım.

Hocam mantığı anlattım, bu mantığa ters düşen kısımları tespite çalışın. + daha önce linkini verdiğim mesajdaki kodu da kullanarak çözersiniz sanırım.

Kolay gelsin.
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

dataset

Mesaj gönderen mehmet_turecan_cakmak »

selamlar...

hocam daha önceki bir mesajımda da dediğim gibi o kodu yazdığımda programı çalıştırırken hata veriyor...

iyi çalışmalar...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hocam hata veriyor da ne hatası? Lütfen hata mesajını yaz :wink:

EK NOT : Belki ordaki ifadenin olduğu uniti uses kısmına eklememişsindir. Onu ekle, düzelir.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Mustafa Hocam ben uses bölümüne ekledim ADOint'ti galiba benim projemde düzelme olmadı bu akşam biraz daha uğraşacağım.

hata mesajı : Project HUSOCHIP.EXE raised exception class EOleException with message 'Satır güncelleştirme için bulunamıyor. Son okunduğundan bu yana bazı değerler değiştirilmiş olabilir'. Process stopped. Use Step or Run to continue.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşlar bu olayı çözdüm Mustafa Hocamızın dediği gibi birincil anahtar tanımlamak gerekiyormuş bende birincil anahtar tanıttım bunun için alanıda saat alanı olarak seçtim. Aynı saniye ve saliseyi yakalamak mümkün olmadığını düşündüm problemim çözüldü form da yorum yapan ve fikir veren arkadaşlarıma ve özellikle Mustafa Hocamıza çok teşekkür ederim.

İyi Geceler.
Cevapla