美好的一天,所有!
我正在使用连接到master-detail数据集的TClientDataSet。首先,保存数据(用于进一步的数据交换)
cdsImpExp.SaveToFile(aFileName,dfXML);
在获得的文件中,备忘录字段是用内部编码编写的(什么编码,BTW?): T_PATIENTS_MEMO =“!?@ 02:0 4; O MB> 9” - 用于主数据集
T_OBSERVATION_MEMO =“!?@ 02:0 4; O MB> 9” - 用于细节数据集
现在做
cdsImpExp.LoadFromFile(aFileName);
并尝试处理每个字段。对于备忘录内容,我的行为非常奇怪。起初我尝试将theese字段读作:
FieldValue:= Field.AsString;
在主数据集中,memo-field包含所需编码的正确字符串(win-1251)。详细说明数据集memo-field包含与输入文件中相同的char序列(!?@ 02:0 4; O MB> 9)。好。我试试这个:
if Field.DataType = ftMemo then
begin
ms := TMemoryStream.Create;
TMemoField(Field).SaveToStream(ms);
ms.Position := 0;
SetString(FieldValue, PChar(ms.Memory), ms.Size);
FieldValue包含一些像'Справка㐠㬄伄этой㼠䀄''(有些字符是正确的,有些字符是日语编码)。
我做错了什么?如何从xml-file中读取详细数据集的备注字段值? 谢谢你的帮助。
我有Delphi XE Update 1。