为什么80%的码农都做不了架构师?>>>
//放置控件: 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;