tdatasource ondatachange olayi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
arkach
Üye
Mesajlar: 51
Kayıt: 28 Ara 2006 08:56

tdatasource ondatachange olayi

Mesaj gönderen arkach »

datasource'un ondatachange olayinda benim sql satirlarim var ve ben bunlary pagecontroldaki gridlere aktariyorum
benim sorunum
if pagecontrol1.activepageindex=... then ...
olunca datasourcenin ondatachangendeki sql cumlesi degismesi gerekiyor ve
ikinci bir tabsheete gecince datasourcenin ondatachange olayini nasil cagyrtabilirim
yardimlariniz icin simdiden tesekkurler
turkmenistandan selamlar
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

datasourcenin ondataCahange yordamı adı üzerinde data da değişiklik durumunda çalışan yordamdır. siz burda değişiklik olmadığı halde bu yordamı çağırmalıyım diyorsunuz. ilgili pagecontrolun index değişimlerinde yapabilirsiniz. if ile girdiğiniz sorgu da index noya göre yaptırabilirsiniz. vs.vs.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
arkach
Üye
Mesajlar: 51
Kayıt: 28 Ara 2006 08:56

Mesaj gönderen arkach »

if diye nasil cagyrtabilirim
mesela ben tabsheet2-nin onshowuna
tabsheet1-e bagli olarak sectiklerini iptal ederek
tabsheet2-e ait sql cumlesi aktif olmasy gerekiyor
ve bunlar bir tane datasource bagli ve ben tabsheet2-ye geldigimde tdatasourcenin ondatachange=benim sql cumlemdekiler olmali
umarim anlatabilmisimdir
turkcemin mukemmel olmamasindan dolayi anlatmada zorluk cekiyorum
turkmenistandan selamlar
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Kod: Tümünü seç

var
shet1, shet2 : string;
begin
shet1 := 'select * from tablo';

Kod: Tümünü seç

if index = 0 then
begin
query1.close;
query1.sql.clear;
query1.sql.add(shet1);
query1.open;
end;
kolay gelsin...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
arkach
Üye
Mesajlar: 51
Kayıt: 28 Ara 2006 08:56

Mesaj gönderen arkach »

benim source kodum

bu kodlar benim tdatasourcenin ondatachenginde

1---
if pagecontrol1.ActivePageIndex=0 then
begin

dm.qanket.DisableControls;
dm.qanket.Close;
dm.qanket.SQL.Text:='select * from anket where erased=0 and
docid='+quotedstr(dm.qdoc.fieldbyname('docid').AsString)+'order by
upddate desc';
dm.qanket.Open;
dm.qanket.EnableControls;

dm.qdcz.DisableControls;
dm.qdcz.Close;
dm.qdcz.SQL.Text:='select * from dcz where erased=0 and czid in
( select czid from viza.anket where erased=0 and
docid='+quotedstr(dm.qdoc.fieldbyname('docid').AsString)+')';
dm.qdcz.Open;
dm.qdcz.enableControls;
end;

2----
if pagecontrol1.ActivePageIndex=1 then
begin

dm.qwiza.DisableControls;
dm.qwiza.Close;
dm.qwiza.SQL.Text:='select * from wiza where erased in(0,2) and
docid='+quotedstr(dm.qdoc.fieldbyname('docid').AsString)+'order by
upddate desc';
dm.qwiza.Open;
dm.qwiza.EnableControls;


dm.qdcz.DisableControls;
dm.qdcz.Close;
dm.qdcz.SQL.Text:='select * from dcz where erased=0 and czid in
( select czid from viza.anket where erased=0 and
docid='+quotedstr(dm.qdoc.fieldbyname('docid').AsString)+') and

//ikinci durumda bunlar ekleniyor ekleniyor
:arrow:
czid not in(select czid from viza.garsylyk where erased=0 and
docid='+quotedstr(dm.qdoc.fieldbyname('docid').AsString)+')';

dm.qdcz.Open;
dm.qdcz.enableControls;
end;

bende 2 shete gecinje hemen
2--- nci kodlarim calissin demek istiyorum
eger grid uzerinde click yaparsam bu sql calisiyor yani ben gride tiklaman
nasil kendisini otamatik olarak tabseet2 gectigimde bu bu durumu cagyrtabilirim
anlatabilmisimdir insallah
turkmenistandan selamlar
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Kod: Tümünü seç

procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.TabIndex = 0 then //1 nolu tab ise
  Begin
    //ilgili sql kodları
  end;
end;
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
arkach
Üye
Mesajlar: 51
Kayıt: 28 Ara 2006 08:56

Mesaj gönderen arkach »

thanks very much

dediginiz gibi controlchange-de ayni sql cumlelerini ekleyince oldu
yine 1 soru daha 2-nji taba gecip sonradan 1-e donunce 2-njideki select duruyor yani refresh etmiyor bu durumu nasil halledebiliriz
turkmenistandan selamlar
arkach
Üye
Mesajlar: 51
Kayıt: 28 Ara 2006 08:56

Mesaj gönderen arkach »

hallettim thanks very much dear my brother
turkmenistandan selamlar
Cevapla