Query den sonra çalışan "Locate" metodu hata veriy

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Query den sonra çalışan "Locate" metodu hata veriy

Mesaj gönderen Yavuz »

Niye öyle oldu bilmiyorum ama bir çalışmamda hen Query hem de Table var ve bunları ayrı ayrı zamanlarda çalıştırmam gerekiyor. Query i aktif yapmadan tablede "Locate" metodunu kullandığımda problem çıkmıyor, ama Query de open dedikten sonra Locateyi çalıştırdığımda hata veriyor ve F12 ile çıkan CPU pneceresi ekrana eliyor. Belki işe yarar diye Query i close ile kapatıp denedim işe yaramadı ne yapmam lazım ?
Teşekkürler ...
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

böyle bir durumda hata vermemesi lazım, yani ister önce ister sonra çalıştırabilirsin. kodunu gönderebilirsen incelemeye çalışalım.
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Kodlar şöyle ...

Kod: Tümünü seç

1)
query1.SQL.Clear;
query1.SQL.add('select * from datamat where UNITE="'+s1+'" AND KONU="'+S2+'" AND KONUNO="'+s3+'"');
JvDBImage1.DataField:='RESIM';
dbtext1.DataField:='ZORLUK';
dbtext2.DataField:='CEVAP';
dbedit1.DataField:='KONUNO';
query1.open;

Kod: Tümünü seç

2)
form2.table1.Locate('UNITE;KONU;KONUNO',VarArrayOf([ComboBox21.Text,listbox1.items[s-1],1]),[lopartialkey,locaseInsensitive]);
    

Kodlar yukarıdaki gibi
1 ve 2 ayrı ayrı program başlatılıp çalıştırıldığında hata vermiyorlar ama sırayla çalıştırıldıklarında

access violation at 0x4de3b711: read of address 0xe11c17e8 Process Stopped Use or run continue


hatasını veriyor !!!...
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Acaba combo ve listbox boş olduğundan mı ... Çünkü aramada mesela edit1.text diye değer verdik ama edit1.text boş ise hata verecektir... Bir de hata kodunu alabilirmiyiz...
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Evet list ve comboları göz önünde bulunduruyorum boş değiller.
Şuhatadan başka hata mesajı yok
access violation at 0x4de3b711: read of address 0xe11c17e8 Process Stopped Use or run continue(Dedeğim gibi CPU durumunu gösteren pencere çıkıyor hani assembly kodunu gösteren)

İşlemi Locateden değilde yine Queryle yapınca hata vermiyor.

Teşekkürler ...
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Enteresan... Gerçi acsess violationu çok konuştuk zamanında... Olmayan birşeyde sana bu hatayı verir... Şimdi dicem delphi yüklendiğinde birşey var ama hiç alakası yok violation ile ... Olmayan birşey ile karşılaştığında uygulama bu mesajı verir...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Table bileşeninde Exlusive diye bir özellik var, aynı tabloya birden fazla erişim/bağlantı kuruluyorsa False olmalı :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Aklıma birşey geldi... Birde arama tiplerini kaldırıp ikisini bir denermisin...
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Çözüme katkısı olur mu bilmem ama;

Locateyi

Kod: Tümünü seç

form2.query2.SQL.Clear;
      form2.query2.SQL.add('select * from "'+yolad+'\Data\datamat.dbf"');
      form2.query2.open;
kodundan sonra çalıştırdığımda hata vermediği halde...

Kod: Tümünü seç

form2.query2.SQL.Clear;
form2.query2.SQL.add('select yayinevi from "'+yolad+'\Data\datamat.dbf" where YAYINEVI<>"" GROUP BY YAYINEVI');
form2.query2.open;
kodundan sonra çalıştırdığımda hata veriyor !!!

işin tuhafı hata veren kod grubunun altına hata vermeyen kodu yazıp çalıştırdığımda (önce yukarıda yazan 2. grup kod sonra altına 1. grup kod )gene hata veriyor! O arada bişi oluyor ama ne ?
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Bu arada exclusive baştan beri false
ayrıca;
arama seçeneklerini iptal etmeme rağmen hata devam ediyor.
"Resimler arasındaki 10 farkı bulun" a döndü bu iş ama ne varsa o iki grup farklı kod arasında var .
Kullanıcı avatarı
Yavuz
Üye
Mesajlar: 115
Kayıt: 09 Haz 2005 03:10

Mesaj gönderen Yavuz »

Müjdeee ! Sorun çözüldü
Pansuman da olsa tableyi kapatıp açınca yapınca hata vermiyor.

Kod: Tümünü seç

table1.Close;
table1.open;
tabi bu çözüm çok üsturuplu durmuyor. Neler olduğunu biri izah ederse çok sevinicem. Bu şekilde aç-kapa dışında yapılması gereken bişi vardır mutlaka.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Her iki select cümleciğinde de farklı alanlar dönmektedir. Dolaysıyla Locate olmayan bir alanı kullanmaya kalktığından olabilir :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Yavuz yazdı:Müjdeee ! Sorun çözüldü
Pansuman da olsa tableyi kapatıp açınca yapınca hata vermiyor.

Kod: Tümünü seç

table1.Close;
table1.open;
tabi bu çözüm çok üsturuplu durmuyor. Neler olduğunu biri izah ederse çok sevinicem. Bu şekilde aç-kapa dışında yapılması gereken bişi vardır mutlaka.
Hadi hayırlısı :D

Şimdi toplarsan ne yapmış oldun... Yani hem SQL cümlende hemde locate inde gibi... Close Open tam mantıklı gelmedi 8)
Cevapla