stringGriddeki bilğileri ClientDataSet'e aktarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

stringGriddeki bilğileri ClientDataSet'e aktarma

Mesaj gönderen forumsad »

arkadaşlar stringgrid deki bilğileri ClientDataSet'e aktarmam lazım internetde araştırdım bir -iki örnek buldum ama sonuç alamadım..

Kod: Tümünü seç

procedure bigileriClientDataSeteDoldur;
begin
if not frmGunSonu.ClientDataSet1.Active then frmGunSonu.ClientDataSet1.Open;
frmGunSonu.ClientDataSet1.First;
while not frmGunSonu.ClientDataSet1.EOF do
//frmGunSonu.ClientDataSet1.insert;
begin
  //perform some operation based on one or
  frmGunSonu.ClientDataSet1.Fields[1].Value :='aaa';
  frmGunSonu.ClientDataSet1.Next;
end;


end;


http://www.delphiturkiye.com/clientdataset.htm
buraki adımları uyguladım sorun yok dataset oluştu ama içine bilğileri dbgrid den değil stringgridden veya birden fazla toblodan okuyarak doldurmak istiyorum
bu konuda küçük bir veri ekleme örneği koyan olursa çok sevinirim saygılarımla...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: stringGriddeki bilğileri ClientDataSet'e aktarma

Mesaj gönderen sabanakman »

Eğer sıfırdan bir ClientDataSet kullanacaksanız aşağıdaki kodlarla alanları ekleyerek tanımlayabilirsiniz. Tabi ilgili bağlantıdaki gibi FieldsEditor üzerinden alanlarınızı eklediyseniz bu kodu görmezden gelmelisiniz.

Kod: Tümünü seç

ClientDataSet1.Close;
ClientDataSet1.FieldDefs.Clear;
ClientDataSet1.FieldDefs.Add('SiraNo',ftAutoInc);
ClientDataSet1.FieldDefs.Add('Adi',ftString,25);
ClientDataSet1.FieldDefs.Add('Soyadi',ftString,25);
ClientDataSet1.FieldDefs.Add('Tarih',ftDateTime);
Bu kodlar form üzerinde boş duran ClientDataSet nesnesinde ihtiyaç duyduğunuz alanları ekleyecektir. Başta da belirttiğim gibi Fields Editor ile alanlarınızı oluşturduysanız bundan sonraki kodları kullanabilirsiniz.

Kod: Tümünü seç

var i:Integer; Tarih:TDateTime;
begin
  ClientDataSet1.CreateDataSet;//<--Alanları tanımlı ClientDataSet'i oluşturur ve açar
  for i:=0 to StringGrid1.RowCount do begin
    ClientDataSet1.Append;
    ClientDataSet1.Fields[1].AsString:=StringGrid1.Cells[0,i];//Adı kolonu
    ClientDataSet1.Fields[2].AsString:=StringGrid1.Cells[1,i];//Soyadı kolonu
    Tarih:=StrToDateDef(StringGrid1.Cells[2,i],0);//Tarih kolonu;
    if Tarih>0 then ClientDataSet1.Fields[3].AsDateTime:=Tarih;
    ClientDataSet1.Post;
  end;
end;
Fields Editor kullanıldıysa bir başka yöntem de aşağıdaki gibi olacaktır.

Kod: Tümünü seç

var i:Integer; Tarih:TDateTime;
begin
  ClientDataSet1.CreateDataSet;//<--Alanları tanımlı ClientDataSet'i oluşturur ve açar
  for i:=0 to StringGrid1.RowCount do begin
    ClientDataSet1.Append;
    ClientDataSet1Adi.AsString:=StringGrid1.Cells[0,i];//Adı kolonu
    ClientDataSet1Soyadi.AsString:=StringGrid1.Cells[1,i];//Soyadı kolonu
    Tarih:=StrToDateDef(StringGrid1.Cells[2,i],0);//Tarih kolonu;
    if Tarih>0 then ClientDataSet1Tarih.AsDateTime:=Tarih;
    ClientDataSet1.Post;
  end;
end;
gibi. Tek yapmanız gereken CreateDataSet diyerek boş bir tablo aktif edip buna kayıtları eklemek olacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: stringGriddeki bilğileri ClientDataSet'e aktarma

Mesaj gönderen forumsad »

çok teşekkürler hocam çok güzel örnekler vermişsiniz..

hemen denemeye başlıyorum ..

saygılarımla
Cevapla