运行时:

//先在窗体上放置: 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 也生成不了.
分类:
数据库编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2009-02-05 多线程编程(1) - 先入门再说
2008-02-05 TMainMenu 类[五] - 快捷键的记录方式