SQL sorguyu editten çağırmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

SQL sorguyu editten çağırmak.

Mesaj gönderen kuntay »

Kod: Tümünü seç

FaturaHr_Query.SQL.Clear;

FaturaHr_Query.SQL.ADD('select sum(faturahr.OZELALANTANIM_10)  from fatura, faturahr where fatura.blkodu=faturahr.blftkodu  and silindi=0 and FATURAHR.blstkodu='''+dblkod+''' and (ozelalantanim_12=2 or ozelalantanim_12=4 or ozelalantanim_12=5)');
FaturaHr_Query.Active:=true;
Stok_DatasetOZELALANTANIM_2.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Stok_Dataset.Next;
Yukarda gördüğünüz kodu aşağıdaki şekilde düzenlemek istiyorum.

Kod: Tümünü seç

FaturaHr_Query.SQL.Clear;

FaturaHr_Query.SQL.ADD(Edit1.text);
FaturaHr_Query.Active:=true;
Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Stok_Dataset.Next;
Anlaşılacağı üzere Edit 1 de istediğim sql kodu yazarak query de çalışmasını istiyorum.
Bu satırdaki Edit2 de datasetin alan bilgisini değiştirebilmem için.

Kod: Tümünü seç

Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Ama bu şekilde hata alıyorum çalışmıyor biraz araştırdım ama tam anlamıyla bu tarz birşey bulamadım.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen SimaWB »

FindComponent fonksiyonunu araştırın.
There's no place like 127.0.0.1
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen kuntay »

Araştırdım forumda pek fazla bahsedilmemiş bu konudan google de aradım orda da bir kaç şey buldum denedim ama hata verdi.
Bu kodu

Kod: Tümünü seç

Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Bu şekilde findcomponent ile denedim ama başarılı olamadım.

Kod: Tümünü seç

TDataSet(FindComponent('Stok_DatasetOZELALANTANIM_'+IntToStr(i))).text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
bu şekilde kullanmak istedim [DCC Error] Main.pas(420): E2003 Undeclared identifier: 'text' böyle bir hata alıyorum.

Delphi XE2 de deniyorum bu arada.

Bu kodu nasıl yazacağımı bile bilmiyorum findcomponent komutu ile

Kod: Tümünü seç

IrsaliyeHr_Query.SQL.Add('select sum(IRSALIYEHR.OZELALANTANIM_14)  from IRSALIYE, IRSALIYEHR where IRSALIYE.blkodu=IRSALIYEHR.blIRkodu  and silindi=0 and IRSALIYEHR.blstkodu='''+dblkod+''' and IPTAL=0 AND STOKHRK_ISLE=1 and (IRSALIYE_DURUMU=2)');
Aslında findcomponent komutu için yabancı sitelerde bişeyler buldum ama hepsi edit ve label vb. alanlar için kullanılmış query veya dataset üzerinde kullanımıyla ilgili bişey bulamadım.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen warder »

kuntay yazdı:

Kod: Tümünü seç

FaturaHr_Query.SQL.Clear;

FaturaHr_Query.SQL.ADD('select sum(faturahr.OZELALANTANIM_10)  from fatura, faturahr where fatura.blkodu=faturahr.blftkodu  and silindi=0 and FATURAHR.blstkodu='''+dblkod+''' and (ozelalantanim_12=2 or ozelalantanim_12=4 or ozelalantanim_12=5)');
FaturaHr_Query.Active:=true;
Stok_DatasetOZELALANTANIM_2.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Stok_Dataset.Next;
Yukarda gördüğünüz kodu aşağıdaki şekilde düzenlemek istiyorum.

Kod: Tümünü seç

FaturaHr_Query.SQL.Clear;

FaturaHr_Query.SQL.ADD(Edit1.text);
FaturaHr_Query.Active:=true;
Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Stok_Dataset.Next;
Anlaşılacağı üzere Edit 1 de istediğim sql kodu yazarak query de çalışmasını istiyorum.
Bu satırdaki Edit2 de datasetin alan bilgisini değiştirebilmem için.

Kod: Tümünü seç

Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Ama bu şekilde hata alıyorum çalışmıyor biraz araştırdım ama tam anlamıyla bu tarz birşey bulamadım.

Kod: Tümünü seç

Stok_Dataset'+'Edit2.text'+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
bu satırda ne yapmaya çalıştığınızı anlamadım.
Sorunuzu daha açık yenilerseniz daha verimli cevaplar alabilirsiniz.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen Battosai »

TEdit için findcomponent kullanacaksanız

Kod: Tümünü seç

TEdit(FindComponent('Stok_DatasetOZELALANTANIM_'+IntToStr(i))).text 
şeklinde kullanmalısınız.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen mrmarman »

Bu fonksiyonu ezbere değil de ilkesel öğrenirseniz en efektif o şekilde kullanabilirsiniz.

(1) FindComponent: parametre olarak bir metin girersiniz, cevap olarak (var ise) size bir nesne döndürür.
(2) Cevap olarak dönen nesneyi önceden biliyorsanız -ki bu örneğimizde bir TEdit aradığınızı biliyoruz- o nesne türünden olduğunu parantez içinde belirtmelisiniz.
(3) Böylece aşağıdaki örneklediğim atamaların hepsi de aynı / eş şekilde çalışacaktır.

Kod: Tümünü seç

AdiSoyadi_5.Text := 'Muharrem ARMAN';
ile

Kod: Tümünü seç

TEdit( FindComponent('AdiSoyadi_5') ).Text := 'Muharrem ARMAN';
ile

Kod: Tümünü seç

var
  strAradigimNesne : String;
  iNumara : Integer;
begin
  iNumara := 5;
  strAradigimNesne := 'AdiSoyadi_'+IntToStr(iNumara);
  TEdit( FindComponent( strAradigimNesne ) ).Text := 'Muharrem ARMAN';
end;
her üçü de eş anlamlıdır. Bu örnekten türeterek istediğiniz sonuca ulaşabilirsiniz. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
kayabey
Üye
Mesajlar: 10
Kayıt: 01 Eki 2007 05:15
Konum: Isparta

Re: SQL sorguyu editten çağırmak.

Mesaj gönderen kayabey »

FaturaHr_Query.SQL.Clear;

FaturaHr_Query.SQL.ADD(Quotedstr(Edit1.text));
FaturaHr_Query.Active:=true;
Stok_Dataset'+Quotedstr(Edit2.text)+'.Text:=IntToStr(FaturaHr_Query.Fields[0].AsInteger);
Stok_Dataset.Next;

//Bu düzeltme işinizi görecektir.
// Quotedstr fonksiyonu, edit içindeki bilgiyi tırnaklar arasında yazar.
Cevapla