DBgriddeki verileri DBgrid2ye aktarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen uranyum238 »

Arkadaşlar filtrelenecek çok alanım var. Veri tabanını tek tek filtreleyerek her seferde dbgrid1 deki çıkan sonuçları dbgrid2 ye aktarmak istiyorum ama dbgrid2deki önceki gelen veriler silinmeyecek yai hep sonrasına ekleme yapılacak, Nasıl yaparım?

Veya şunu yapabilir miyim; tablomdaki farklı sütunlardak aynı verileri hepsini birden dbgridde gösterebilir miyim?
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen CiTiZEN »

Arkadaşlar filtrelenecek çok alanım var. Veri tabanını tek tek filtreleyerek her seferde dbgrid1 deki çıkan sonuçları dbgrid2 ye aktarmak istiyorum ama dbgrid2deki önceki gelen veriler silinmeyecek yai hep sonrasına ekleme yapılacak, Nasıl yaparım?
Bu kısma cevap verebilirim:

öncelikle dbgrid1 in bağlı oldugu veritabanı için filtreleme yaparsın daha sonrasında bir eof döngüsü ile (veritabanı kayıtları veya dbgrid üst sınırını birer azaltarakda yapılabilir bir kaç yöntemi var) dbgrd2 ye eklersin eğer dbgridddeki veriler siliniyorsa listview gibi bir bileşenede aktarabilirisn
UWESIS CORPORATION
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen uranyum238 »

Durum şu datagrid1 veri tabanına bağlı ve filtreleme yapıyorum. 2. bir datagride veya stringgride de olabilir, bu filtrelenmiş kayıtları eklemek istiyorum ama ekleme kısmını beceremiyorum. DAtagridin ilk satırını stringgride ekleyebiliyorum ama 2. satıra bir türlü geçmiyor. Sadece ilk satırı alıyor. Örnek kod var mıdır?
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen conari »

ilk satırı nasıl ekliyorsunuz?
aslında sorunuz cevabı yukarıda yazan Eof da saklı.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen ZeynelAbidin »

uranyum238 yazdı:Durum şu datagrid1 veri tabanına bağlı ve filtreleme yapıyorum. 2. bir datagride veya stringgride de olabilir, bu filtrelenmiş kayıtları eklemek istiyorum ama ekleme kısmını beceremiyorum. DAtagridin ilk satırını stringgride ekleyebiliyorum ama 2. satıra bir türlü geçmiyor. Sadece ilk satırı alıyor. Örnek kod var mıdır?
İkinci gridide bir veritabanına bağlayın.

Kod: Tümünü seç

table1.first
while not table1.eof do;
begin
//ikinci veritabanına yazmak için
//gerekli işlemler 
table1.next;
end;
table1 sizin birinci gridinizin bağlı olduğu table
bu şekilde yapmaya çalışın olmazsa hangi komutlarla yapmaya çalıştığınızı söyleyin ona göre yorum yapalım.
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen uranyum238 »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
ADOTable1.Filtered:=false;
ADOtable1.Filter:='DOKUZ like '+'%'+Edit1.Text+'%';
ADOTable1.Filtered:=true;
ADOTable1.open;
for j:=1 to   DBGrid1.DataSource.DataSet.RecordCount-1 do
  begin
  for i:=1 to DBGrid1.DataSource.DataSet.RecordCount-1 do
  StringGrid1.Cells[i,j]:=DBGrid1.Columns.Items[i-1].Field.Text;
  end;
end;
Yazdığım kod bunlar İlk filtrelemede 6 elemanı kalıyor ama stringgride 4 tane ekliyor ve hep aynı elemanlar ekleniyor.
Bundan sonra 2. ve 3. filtreleme yapaağım ve bunlarıda stringgride devam şeklinde göstereeğim ama yapamıyorummm.
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen emin_as »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
ADOTable1.Filtered:=false;
ADOtable1.Filter:='DOKUZ like '+'%'+Edit1.Text+'%';
ADOTable1.Filtered:=true;
ADOTable1.open;
İlk kısımla ilgili pek sorun yok. Ama ikinci kısmın düzenlenmesi gerekiyor.

Kod: Tümünü seç

  dbgrid1.datasource.dataset.first; // ne olur ne olmaz, ilk kayda gidelim
  j:=1; // string gridde 1. satırdan başlayacagız, istiyorsan 5 veya 6 da olabilir.
  while not DBGrid1.datasource.dataset.EOF do
 begin
    // aktarımda fields count u kullanman lazım
    for i:=0 to datagrid1.datasource.dataset.Fields.Count-1 do
       StringGrid1.Cells[i,j]:=DBGrid1.datasource.fields[i].AsString; 

    dbGrid1.Datasource.Next;  // sendeki bir eksiklik bu, sonraki kayda geçmiyorsun. 
    inc (j);  // stringridde bir alt satıra geçelim.
 end;
end;
Yukarıdaki şekilde dene çalışması lazım. Bir de dbgrid1 datasource yerine dogrdudan ADOTable1 i kullanabilrsin.
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen uranyum238 »

Cevap ve harcadığın zaman için çok teşekkürler bayağı işime yaradı yalnız tek bir sorun kaldı. O da stringgrid normalde 5 satırdan oluşuyor. Filtreleme sonucu örneğin 6 kayıt kaldığında bu kayuıtların 5i stringgrid de yer alıyor. Yani stringgride filtrelenmiş eleman kadar satır eklemek lazım galiba.
inc (j); // stringridde bir alt satıra geçelim.
demişsiin ama alt satıra geçmiyor.

StringGrid1.Rows.Add('');

Edit: böyle bişeyler denedim ama ekleme yapmadı
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen conari »

Kod: Tümünü seç

StringGrid1.RowCount:=6;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
uranyum238
Üye
Mesajlar: 50
Kayıt: 06 Kas 2005 10:46

Re: DBgriddeki verileri DBgrid2ye aktarma

Mesaj gönderen uranyum238 »

arkadaşlar çok teşekkürler gerçekten çok yardımcı oldunuz.
Cevapla