运行时: //先在窗体上放置: DBGrid1、DataSource1、ClientDataSet1 并关联, 然后: procedure TForm1.FormCreate(Sender: TObject); begin //ClientDataSet1.ObjectView := True; { 这是默认的 } { 先定义两个基本字段 } with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := ''ID''; DataType := ftInteger; end; with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := ''Name''; DataType := ftString; Size := 7; end; { 定义 ftADT 字段, 联系方式(Contact)中包括: Tel、QQ、Email } with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := ''Contact''; DataType := ftADT; Size := 3; ChildDefs.Add(''Tel'', ftString, 12); ChildDefs.Add(''QQ'', ftString, 9); ChildDefs.Add(''Email'', ftString, 15); end; ClientDataSet1.CreateDataSet; { 添加记录, 这种最方便 } ClientDataSet1.AppendRecord([1, ''张三'', VarArrayOf([''9111111'', ''12222'', ''aaa@bbb''])]); { 下面的其他添加方法也可用于访问 } ClientDataSet1.Append; ClientDataSet1[''ID''] := 2; ClientDataSet1[''Name''] := ''李四''; ClientDataSet1[''Contact.Tel''] := ''9222222''; ClientDataSet1[''Contact.QQ''] := ''13333''; ClientDataSet1[''Contact.Email''] := ''ccc@ddd''; ClientDataSet1.Post; ClientDataSet1.Append; ClientDataSet1.Fields[0].AsInteger := 3; ClientDataSet1.Fields[1].AsString := ''王五''; TADTField(ClientDataSet1.Fields[2])[0] := ''9333333''; TADTField(ClientDataSet1.Fields[2])[1] := ''14444''; TADTField(ClientDataSet1.Fields[2])[2] := ''eee@fff''; ClientDataSet1.Post; ClientDataSet1.Append; ClientDataSet1.FieldByName(''ID'').Value := 4; ClientDataSet1.FieldByName(''Name'').Value := ''孙六''; TADTField(ClientDataSet1.FieldByName(''Contact'')).FieldValues[0] := ''9444444''; TADTField(ClientDataSet1.FieldByName(''Contact'')).FieldValues[1] := ''15555''; TADTField(ClientDataSet1.FieldByName(''Contact'')).FieldValues[2] := ''ggg@hhh''; ClientDataSet1.Post; end;
设计时: 这种复杂点的数据可以保存为 cds, 但保存不了 XML, 且 XMLData 也生成不了.(责任编辑:admin) |