本例用到:
TClientDataSet.Fields[]; { 字段集合; 它比 FieldList 有更多功能, 如可获取嵌套字段 }
TClientDataSet.FieldList[]; { 字段列表; 它比 Fields 轻便, 如果只是取值用它快一些 }
TClientDataSet.FieldByName(); { 根据字段名称获取字段对象; 获取一个字段对象时它比上两个快 }
TClientDataSet.FindField(); { 根据字段名称查找字段对象 }
TClientDataSet.FieldValues[]; { 根据字段名称获取字段值; 如果仅是获取字段值, 这个最快 }
TClientDataSet.First; { 到第一个记录 }
TClientDataSet.Next; { 到下一个记录 }
TClientDataSet.Last; { 到最后一个记录 }
TClientDataSet.Prior; { 到上一个记录 }
TClientDataSet.RecNo; { 设置或读取当前记录的位置 }
TClientDataSet.Bof; { 当前位置是否是第一个记录 }
TClientDataSet.Eof; { 当前位置是否是最后一个记录 }
TClientDataSet.RecordSize; { 一个记录的大小; 所谓一个记录就是当前行的所有字段 }
TClientDataSet.RecordCount; { 记录总数; 也就是总行数 }
TClientDataSet.GetFieldList(); { 根据指定的几个字段名获取字段对象的列表 }
TClientDataSet.GetFieldData(); { 把指定字段的值写入一个缓冲区 }
TClientDataSet.GetCurrentRecord(); { 把当前记录(不包括 Bolb 字段)写入到一个缓冲区 }
关键字: TClientDataSet GdiPlus[1] RegularExpreio GdiPlus XMLDocument 类详解
TClientDataSet[5]: 读取数据。
读取字段的结构信息可以使用 TFieldDef 对象(一般来源于 FieldDefs 或 FieldDefList);
现在要读取其中的数据, 应该使用 TField 对象(一般来源于 Fields 或 FieldList).
Fields[0]、Fields[1] ... Fields[n] 获取的是当前行的第几个字段, 可用 Next、RecNo 等指定当前位置(行).
下面的例子使用了 Common Files\CodeGear Shared\Data\holdings.xml, 若更换文件需调整代码.
这是 holdings.xml 的字段信息:
ACCT_R { 类型是 r8, 对应 ftFloat, 相当于 Double }
SYMBOL { 类型是 string, 对应 ftString, 相当于 AiString; 指定 Size=7, 加上空结束, 大小是 8 }