arkadaşlar merhaba
ben bi dbgridde 1 den fazla seçtiğim stırları
başka bir dbgride aktarmak istiyoırum.
veritabanı olarak advantage kullanıyorum.
ads nin bacthmowe sini bi türlü kullanmayı beceremedim.
dbgrid to dbgrid
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
Bunun için Dbgrid nesnesinin SelecTedRows özelliğinden yararlanacaksın. İlk önce Seçili kayıtların 1 veya 1 den fazla olup olmadığını kontrol ettir. Secili kayıtlar 1 veya 1 den fazlaysa bir for döngüsüyle olayını halledersin.
Kolay Gelsin...
Bunun için Dbgrid nesnesinin SelecTedRows özelliğinden yararlanacaksın. İlk önce Seçili kayıtların 1 veya 1 den fazla olup olmadığını kontrol ettir. Secili kayıtlar 1 veya 1 den fazlaysa bir for döngüsüyle olayını halledersin.
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Yanlış bir durum olmasın DBGrid de kayıt yok! bağlı bulunduğu DataSet te var. DataSet in den faydalanıp seçili olan kayıtları ikinci bir DBGrid in DataSet ine dolaysıyla ikinci bir tabloya atıp önceki tablodan silebilirsiniz. Belki yapmak istediğiniz budur da aceleyle soru şekli fazla yüzeysel ve anlamsız oluyor:)
Delphi IDE DBGrid1.SelectedRows helpinden
Ayrıca DBGrid in Options larından MultiSelect ini True yapmalısın.
Kolay gelsin.
Delphi IDE DBGrid1.SelectedRows helpinden
seçilen kayıtları bu şekilde bulup yukarıda tarif ettiğim şekilde yapabilirsin.Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject); var i, j: Integer; s: string; begin if DBGrid1.SelectedRows.Count>0 then with DBGrid1.DataSource.DataSet do for i:=0 to DBGrid1.SelectedRows.Count-1 do begin GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= ''; end; end;
Ayrıca DBGrid in Options larından MultiSelect ini True yapmalısın.
Kolay gelsin.
hocam öncelikle ilginize teşekkur
yanlız benim yapmak istediğim biraz daha farklı
ben aslında bir tablodaki kayıtları başka bir tablonun sonuna (append) methodu ile eklemek istiyorum.
paradoxta bunu bachmowe ile yapabiliyorum ama advantage kullandığım için sorun biraz buyudu galiba.
yani seçili kayıtları listwiewe almam benim işime yaramıyor.
yapmak istediğim işi şöyle anlatayım:
ben işlemi a tablosun da yaptırıyorum ama aslın da gerçek kayıtlar b tablosunda tutuluyor.
Yapılmak istenen yapılıp kaydet tuşuna basılınca verilerin b tablosunun sonuna eklenmesi lazım
Önemli ben advantage kullanıyorum
yanlız benim yapmak istediğim biraz daha farklı
ben aslında bir tablodaki kayıtları başka bir tablonun sonuna (append) methodu ile eklemek istiyorum.
paradoxta bunu bachmowe ile yapabiliyorum ama advantage kullandığım için sorun biraz buyudu galiba.
yani seçili kayıtları listwiewe almam benim işime yaramıyor.
yapmak istediğim işi şöyle anlatayım:
ben işlemi a tablosun da yaptırıyorum ama aslın da gerçek kayıtlar b tablosunda tutuluyor.
Yapılmak istenen yapılıp kaydet tuşuna basılınca verilerin b tablosunun sonuna eklenmesi lazım
Önemli ben advantage kullanıyorum
Selam...
@rsimsek size çok uygun bir kod yazmış, geriye kalan biraz zihin jimlastiği yapıp bunu kendi istediğiniz şekle dönüştürmek...
kısmında ufak bir modifikasyon ile istediğinize kavuşabilirsiniz...
- Yukardaki kod her iki tablonun alan tipleri bire bir eşitse çalışır... Farklı alanları aktarmak isterseniz döngü yerine normal eşitlikleri koyun olsun bitsin... 
@rsimsek size çok uygun bir kod yazmış, geriye kalan biraz zihin jimlastiği yapıp bunu kendi istediğiniz şekle dönüştürmek...

- Kendi cümlenizle demişsiniz... Append yapmak istiyorum demişsiniz...ALUCARD yazdı:ben aslında bir tablodaki kayıtları başka bir tablonun sonuna (append) methodu ile eklemek istiyorum.
Kod: Tümünü seç
for j := 0 to FieldCount-1 do
begin
if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Kod: Tümünü seç
AdvantageTable.Append;
for j := 0 to FieldCount-1 do
begin
AdvantageTable.Fields[j].Value := Fields[j].Value;
end;
