Query temizleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Query temizleme

Mesaj gönderen m_ekici »

Merhaba

Kod: Tümünü seç

Rap0_.Close;
Rap0_.SQL.Clear;
Rap0_.SQL.Add('SELECT KAYITNO,ADI,SOYADI FROM CARI');
Rap0_.open;

Rap2_.Close;
Rap2_.SQL.Clear;
Rap2_.DataSource := R0Ds;
Rap2_.SQL.Add('SELECT CHNO,TARIH,ACIKLAMA,TUTAR FROM HAREKET');
Rap2_.SQL.Add('WHERE CHNO=:KAYITNO');
Rap2_.Open;

///////////
......
///////////
Rap0_.Parameters.Clear;
Rap0_.Close;
Rap0_.SQL.Clear;
Rap0_.SQL.Add('SELECT KNO,ACK1,ACK2 FROM DENEME');
Rap0_.open;

Rap2_.Close;
Rap2_.SQL.Clear;
Rap2_.DataSource := R0Ds; // ?????????? 
Rap2_.SQL.Add('SELECT * FROM HAREKET');
Rap2_.SQL.Add('WHERE CHNO=:KNO');
Rap2_.Open;
yukarıdaki kodda ?????? satıra geldiğinde KAYITNO not found şeklinde hata veriyor. İlk sorguda KAYITNO değişkenini parametre ye ekliyor. fakat ikinci sorguda [Rap0_.Parameters.Clear] komutu olmasına rağmen hafızada kalıyor. bunu nasıl temizlerim?

iyi çalışmalar
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Query temizleme

Mesaj gönderen conari »

rap2 için clear yok görülüyor.

Kod: Tümünü seç

Rap2_.Parameters.Clear;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Query temizleme

Mesaj gönderen m_ekici »

Eklediğim de de hata veriyor. Hatayı Rap0 için veriyor.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Query temizleme

Mesaj gönderen conari »

hata nedir aynı hatamı?
bu arada parametre değerleri nerede?
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Query temizleme

Mesaj gönderen m_ekici »

Aynı hata. Burada ben parametre kullanmıyorum. Bu Query leri birçok formdan ortak kullanıyorum. Master detail kullanmadığım sürece problem yok. Master/detail bağlayıp (parametre değişkeni kendisi oluşturuyor) formu kapatmadan yukarıdaki kodu tekrar kullandığımda hata alıyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Query temizleme

Mesaj gönderen aslangeri »

s.a.
rap0 ın hemen ardından rap2 i close et.
anladığım kadarı ile rapX ler birbiri ile ilişkilendirilmiş.
birinde değişiklik yaptığınızı zaman ilişkili alanı bulamadım diye mesaj veriyor.
oyüzden ikisini aynı anda kapatın. değişiklikleri yapın. sırayla açın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Query temizleme

Mesaj gönderen m_ekici »

tşk arkadaşlar
:N(
ama malesef aynı hata devam ediyor.
Çok basit bir çözümü olmalı Query yi kapattıktan bağlantıyı koparmalı ve alanları temizlemeli diye düşünüyorum
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Query temizleme

Mesaj gönderen mrmarman »

Merhaba.

ADO kullanıyorsanız bu cevabım geçerlidir.

Geçmiş zamanda da forumda bildirmiştim ama sadece bir detay olduğundan aramalarda bulamamış olmanız normaldir. Eğer bir AdoQuery için AdoConnection atamasını yapmayı unutmuşsanız, garip bir şekilde tepki olarak parameter not found hatası alırsınız. Bunu bir kontrol edin ondan sonra sorununuza çözüm aramaya devam ediniz.
Resim
Resim ....Resim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Query temizleme

Mesaj gönderen m_ekici »

Ado kullanıyorum. ilk mesajıma bakarsan RAP0 ve ve RAP2 yi önce normal açıyor. yani connection olmasaydı 1. açılışta hata verirdi. hatayı ????? satırına geldiğinde yapıyor.
Hatayı kısaca açıklayayım;
Rap0 ve Rap2 arasında Master detail bağlantısı oluşturduktan sonra

Kod: Tümünü seç

Rap0_.Parameters.Clear;
Rap0_.datasource=nil;
Rap0_.Close;
Rap0_.SQL.Clear;
Rap2_.Parameters.Clear;
Rap2_.datasource=nil;
Rap2_.Close;
Rap2_.SQL.Clear;
komutları Rap0 ve Rap2 arasındaki master detail ilişkisini koparmıyor. aynı queryleri farklı bir master detail ilişkisi ile bağladığımda 1. bağlantıdaki değişken hafızada kalıyor ve Queryi açtığımda 1. bağlantının değişkeninin bulamadım (KAYITNO) hatası veriyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Query temizleme

Mesaj gönderen mrmarman »

Yanlış anlama, mesajını okudum. Ayrıca hata bundandır diye netleştirip altını çizmedim bilakis sadece bunu da bir kontrol edin dedim.

Birinci defada çalışıyor olması benim için bişey ifade etmez. Çünkü herhangi bir zamanda AdoQuery'nin Connection'u da "Nil"'e döndürülmüş olabilir. Böylece ilk defada çalışıyor demek ile sonra da hep çalışırdı şekline dönen ifade bu durumda netliğini yitiriyor.

Sorunu bulunca burada paylaşırsınız, başarılar.
Resim
Resim ....Resim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Query temizleme

Mesaj gönderen m_ekici »

estf. mrmarman ilgine tşk.
ben aynı procedure içinde olduğu için o şekilde yazdım.

çözümü şu şekilde buldum;

Kod: Tümünü seç

Rap0_.Close;
Rap0_.SQL.Clear;
Rap0_.SQL.Add('SELECT KAYITNO,ADI,SOYADI FROM CARI');
Rap0_.open;

Rap2_.Close;
Rap2_.SQL.Clear;
Rap2_.DataSource := R0Ds;
Rap2_.SQL.Add('SELECT CHNO,TARIH,ACIKLAMA,TUTAR FROM HAREKET');
Rap2_.SQL.Add('WHERE CHNO=:KAYITNO');
Rap2_.Open;

///////////
......
///////////
Rap0_.Parameters.Clear;
Rap0_.Close;
Rap0_.SQL.Clear;
Rap0_.SQL.Add('SELECT KNO,ACK1,ACK2 FROM DENEME');

Rap2_.Close;
Rap2_.SQL.Clear;
Rap2_.DataSource := R0Ds; 
Rap2_.SQL.Add('SELECT * FROM HAREKET');
Rap2_.SQL.Add('WHERE CHNO=:KNO');
Rap2_.Open;
Rap0_.open;   // <<< Rap2 yi açtıktan sonra Rap0 ı açıyorum ama ilk önce rap2 açıldığı için master detail çalışmıyor. 
Rap2_.close; rap2_.open;   // gibi bir tuhaflıktan sonra hatasız çalışmaya başadı... 
Cevapla