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.