sql count kullanımında hata

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

sql count kullanımında hata

Mesaj gönderen Lord_Ares »

merhaba, veritabanındaki kayıt sayısını almayı aşağıdaki gibi button1 onclik olayında almaya denediğimde ' QCIHAZLAR:Field KODU not found ' hatası alıyorum. Oysa queryi incelediğimde KODU isimli primary key ve otomatik artan alanım query de ekli. Aynı sorguyu query editöründe çalıştırıyorum sorun çıkmıyor .. Sebebini bir türlü anlayamadım :D

Kod: Tümünü seç

      DATAMODUL.QCIHAZLAR.sql.Clear;
      DATAMODUL.QCIHAZLAR.sql.Add('Select  count(*) AS TOPLAM from CIHAZLAR ');
      DATAMODUL.QCIHAZLAR.OPEN;

ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: sql count kullanımında hata

Mesaj gönderen ertank »

Merhaba,

QCIHAZLAR üzerinde sağ tuş ile tıkladığınızda Fields içine girdiğinizde listenin boş olduğuna emin olun. Eğer hata bundan kaynaklı değil ise hata veren kodu ve hata satırını paylaşmanız gerekecektir.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: sql count kullanımında hata

Mesaj gönderen Lord_Ares »

Merhaba, Ertank çok teşekkürler. Kodun tamamı yukarıda paylaştığım gibi. Çok ilginç, dediğiniz gibi queryde fields içindeki listeyi sildiğimde kod çalıştı. Query deki Fields doldurmadan çalışmak problem çıkarmaz mı ? Kullandığım dbgridleri kontrol ettim sorun yok gibi..
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: sql count kullanımında hata

Mesaj gönderen ertank »

Nesne içinde tanımlı olan alanlara kullandığınız bileşen tablo açıldıktan sonra bir sebepten erişim yapmak istiyor. Belki bir Grid veya DB-aware bileşen bağlantısı olduğu için erişmeye çalışıyor olabilir. Ya da bileşen davranışı bu şekilde olabilir. Bilemiyorum.

Şahsen eğer sıkı döngüler içinde kopyalama gibi işlemler yapmayacak isem alanları bileşen içine tanımlamadan boş şekilde kullanmayı tercih ediyorum. Döngüler içinde ise işleme özel bileşen kullanıp alanları tanımlıyorum. Birden fazla farklı sorgu için kullanılacak bileşenlere alan tanımı yapmıyorum.

Alanlar bileşen içine tanımlanmasa dahi kod ile erişilip kullanılabilir.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: sql count kullanımında hata

Mesaj gönderen Lord_Ares »

Bu cevabınızı görünce master detail yapıda Foregenkey bir alan vardı bu sebepten olabilir diye düşündürdü. Ne kadar sağlıklı bilmem ama , kod ile table oluşturup aşağıdaki şekilde çözüm buldum. yenisini bulana kadar bir çözüm :) Çok teşekkürler

Kod: Tümünü seç


  FUNCTION TDATAMODUL.KAYIT_SAYISI(MUSKODU:INTEGER):INTEGER;
VAR
  Aranacak_Query: TFDQuery;
begin
  Result:=0;
  Aranacak_Query:=TFDQuery.Create(Self);
  Aranacak_Query.Connection:=FDConnection1;
  Aranacak_Query.SQL.Clear;
  Aranacak_Query.SQL.Add('Select count(*) AS TOPLAM from CIHAZLAR WHERE MUSKODU= :KOD');
  Aranacak_Query.ParamByName('KOD').AsInteger:=MUSKODU;
  Aranacak_Query.OPEN;
  Aranacak_Query.FieldDefs.Update;
  Result:= Aranacak_Query.FieldByName('TOPLAM').AsInteger;
  Aranacak_Query.CLOSE;
  Aranacak_Query.Free;

end;



Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: sql count kullanımında hata

Mesaj gönderen Okann »

Şöyle birşey yapsan olmaz mı :)

Kod: Tümünü seç

var
  Toplam: Integer;
begin
  with Q do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM ABCD');
    Open;
    First;
    Toplam := RecordCount;
  end;
end;
Cevapla