Alt form dün üst formdaki Adodataseti kullanıyordu bugun err

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Alt form dün üst formdaki Adodataseti kullanıyordu bugun err

Mesaj gönderen MicroChip »

Alt form dün üst formdaki Adodataseti kullanıyordu bugun ise access violation (erişim ihlali) veriyor. bunun nedeni nedir acep.

Adodataset'in kullanıldığı form açık iken ikinci bir forumda açık olan forumdaki adoseti kullandığım anda; mesela

form1.adodataset1.first;

dediğim anda programı bırakın delphi bile çöküyor.

verdiği hata ise

Access violation at address 004BB69B in module 'dersane.exe'. Read of address 000002D8.

değiştirmiş olduğum bir ayar olduğunu da sanmıyorum acaba nedeni nedir?

Saygılarımla'..
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

access violation = olmayan (create edilmemiş) bir nesneye ulaşmaya çalışıyorsunuz demektir. Adım adım çalıştırarak hangi satırda hata verdiğini bulun ve o nesnenin, o satırdan önce create edilidğinden emin olun veya kodu düzeltin.

Kolay gelsin.
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 »

tekrar merhaba

with fralt001_.subeset do
begin
Append;
FieldValues['sube_kod']:=formana_.sifirekle(inttostr(sonkayitno+1));
FieldValues['sube_adi']:=edit1.text;
Fieldvalues['sube_aciklama']:=edit2.text;
post;
end;

diyerek dosyaya kaydediyor fakat pencereyi kapattığımda aşağıdaki hatayı veriyor bir türlü çözemedim.

project deneme.exe raised exception class EOleexception with message 'ya BOF ya da EOF doğru veya geçerli kayır silinmiş. istenilen işlem geçerli bir kayıt gerektiriyor'. process stopped. use step or run to continue.
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

ADO bir kaydı güncellerken sadece key alanlara bakmıyor, tüm alanları kullanıyor. Yani sen bir kaydı güncellerken veya silerken Where kısmında tüm alanlar var.

1. viewtopic.php?t=346 başlığına bak.

2. Her tablonda mutlaka unique (tekil) bir anahtar alanın olsun.

3. Konuyla alakası yok ama FieldValues kullanma. FieldValues yardımdan da bakarsan Variant döndürür ve birçok yerde başını ağrıtır. FieldByName('aa').AsString, FieldByName('aa').AsInteger vb. gibi kullan.

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

ado

Mesaj gönderen mehmet_turecan_cakmak »

mustafa hocam dediğiniz kodu adodatasetin beforedelete olayına yazdım ama adodatasetin beforeupdate olayı yok valla anlamadım gitti. Kodu beforedelete olayına yazdığım zamanda kürsör adcreteria yazısının oraya gelip hat veriyor tabi ben yine bişe anlamadım tekrar yardıma ihtiyacım var...

kolay gelsin...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

o kelimenin tanımlı olduğu uniti uses kısmına ekle. Hangisi bilemiyorum şu an. Üzerine gelip F1'e bas veya Help'ten arattır.

Kolay gelsin.
Cevapla