fdb den excel e...

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
elektroumut
Üye
Mesajlar: 32
Kayıt: 22 Kas 2005 02:48

fdb den excel e...

Mesaj gönderen elektroumut »

firebir vt kullanıyorum.şubelerden bilgileri bir fdb vt e alıyorum.
ibdataset , ibdatabase , ibtransaction , ibevents , ibtable , dbmemo gibi bileşenler kullanıyorum.
fdb vt e kaydedilen bilgileri aşağıda yazdığım gibi excel e aktarmaya çalışıyorum.problem olmuyor ancak sadece birinci record (satır) aktarılıyor.diğerleri yok.ibtable de master field e magazakodu>magazakodu , urun_portfoyu>urun_portfoyu..... ekledim.
Ne yanlışlık olabilir?

**********************************************
procedure TForm1.Button1Click(Sender: TObject);
var
excelPrg,sayfa:variant;
i,d:integer;
r:variant;
begin
excelPrg:=createoleobject('excel.application');//exceli yarat
excelPrg.workbooks.add;
sayfa:=excelPrg.workbooks[1].worksheets[1];{Birinci calisma sayfasini sayfa degiskenine ata}
r:=excelPrg.activeworkbook.worksheets[1].cells[1]; // Burası Çok önemli
i:=0;
d:=0;
while Not IBTable1.eof do
begin
i:=i+1;
d:=d+1;
r.cells[1+d,i]:=IBTable1.FieldByName('MAGAZAKODU').AsString;
r.cells[1+d,i+1]:=IBTable1.FieldByName('URUN_PORTFOYU').AsString;
IBTable1.Next;
i:=0;
end;
excelPrg.visible:=true;//Exceli acip verileri

end;
elektroumut
Üye
Mesajlar: 32
Kayıt: 22 Kas 2005 02:48

Mesaj gönderen elektroumut »

sanırım IBTAble.Next ile ilgili bir sıkıntı vardı.
IBTable i kaldırdım ve kodu şöyle değiştirdim.
Şimdilik sorun çözüldü gibi. :D
Yine de çok teşekkürler.

*********************************
procedure TForm1.Button1Click(Sender: TObject);
var
excelPrg,sayfa:variant;
i,d:integer;
r:variant;
begin
IBDataSet1.First;
excelPrg:=createoleobject('excel.application');//exceli yarat
excelPrg.workbooks.add;
sayfa:=excelPrg.workbooks[1].worksheets[1];{Birinci calisma sayfasini sayfa degiskenine ata}
r:=excelPrg.activeworkbook.worksheets[1].cells[1]; // Burası Çok önemli
i:=0;
d:=0;
while Not IBDataSet1.eof do
begin
i:=i+1;
d:=d+1;
r.cells[1+d,i]:=IBDataSet1.FieldByName('MAGAZAKODU').AsString;
r.cells[1+d,i+1]:=IBDataSet1.FieldByName('URUN_PORTFOYU').AsString;
IBDataSet1.Next;
i:=0;
end;
excelPrg.visible:=true;//Exceli acip verileri

end;
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba, sorununun çözüldüğüne sevindim,

sorun bundanmı bilemiyorum ama forumda bulunan ustalar genelde ibdataset veya ibquery kullanmayı tavsiye ediyorlar çalışmalarda.

birde kodlarını mesaj yazma bölümünde bulunan code tagı içerisinde yazarsan okunaklı ve güzel olur.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
elektroumut
Üye
Mesajlar: 32
Kayıt: 22 Kas 2005 02:48

Mesaj gönderen elektroumut »

teşekkür ederim.
forumu inceledim.ilk önce ibquery deneyerek yapmaya çalıştım ama başarılı olamadım.anlatılanları benim uygulamaya aktaramadım.
bu şekilde yapmamın sakıncası var mıdır?
firebird vt , ibdataset , ibdatabase , ibtransaction kullanılan bir uygulamada ibquery ile grid kullanmadan direkt vt den excel e aktarım yapacak kod nedir?
Cevapla