//放置控件: ClientDataSet1、DataSource1、DBGrid1、Button1, 然后

procedure TForm1.Button1Click(Sender: TObject);
begin
  { 添加字段 }
  with ClientDataSet1.FieldDefs.AddFieldDef do
  begin
    Name := 'ID';
    DataType := ftInteger;
  end;

  with ClientDataSet1.FieldDefs.AddFieldDef do
  begin
    Name := 'Name';
    DataType := ftString;
    Size := 12; { ftString 类型的 Size 默认 20 }
  end;

  with ClientDataSet1.FieldDefs.AddFieldDef do
  begin
    Name := 'Age';
    DataType := ftWord;
  end;

  with ClientDataSet1.FieldDefs.AddFieldDef do
  begin
    Name := 'Sex';
    DataType := ftBoolean;
  end;

  { 构建数据集, 不可缺少的一步 }
  ClientDataSet1.CreateDataSet;

  { 显示; 如果在设计时已挂接或不需要显示, 可省略下两行 }
  DataSource1.DataSet := ClientDataSet1;
  DBGrid1.DataSource := DataSource1;

  { 添加数据 }
  ClientDataSet1.AppendRecord([1, '张三', 33, True]);
  ClientDataSet1.AppendRecord([2, '李四', 44, False]);
  ClientDataSet1.AppendRecord([3, '王五', 55, True]);

  { 保存为 cds 或 XML }
  ClientDataSet1.SaveToFile('C:\Temp\TestBinary.cds');
  ClientDataSet1.SaveToFile('C:\Temp\TestXMLUTF8.xml', dfXMLUTF8);
end;


这个表的设计也可以在设计时完成:



代码可另写为(下面这种方法简单, 但上一种方法可设置更多选项):
procedure TForm1.Button1Click(Sender: TObject);
begin
  { 添加字段 }
  with  ClientDataSet1.FieldDefs do
  begin
    Add('ID', ftInteger);
    Add('Name', ftString, 12);
    Add('Age', ftWord);
    Add('Sex', ftBoolean);
  end;

  { 构建数据集, 不可缺少的一步 }
  ClientDataSet1.CreateDataSet;

  { 显示; 如果在设计时已挂接或不需要显示, 可省略下两行 }
  DataSource1.DataSet := ClientDataSet1;
  DBGrid1.DataSource := DataSource1;

  { 插入数据 }
  ClientDataSet1.InsertRecord([1, '张三', 33, True]);
  ClientDataSet1.InsertRecord([2, '李四', 44, False]);
  ClientDataSet1.InsertRecord([3, '王五', 55, True]);

  { 保存为 cds 或 XML }
  ClientDataSet1.SaveToFile('C:\Temp\TestBinary.cds');
  ClientDataSet1.SaveToFile('C:\Temp\TestXMLUTF8.xml', dfXMLUTF8);
end;

posted on 2010-01-21 10:29  万一  阅读(9328)  评论(5编辑  收藏  举报