【发布时间】:2013-04-23 13:33:46
【问题描述】:
当我尝试将 Stream 加载到 ClientDataSet 时,出现以下异常:
数据包不匹配
ClientDataSet 有几个 WideStringfields,所以我尝试使用 TStringStream.Create 中的编码。如果我离开编码,我会得到一个例外:
字段 XXZ 的类型不匹配;假定:TWideString,实际:String
以下是我的代码:
importStream := TMemoryStream.Create;
zipImport.ExtractToStream(importName, importStream);
importStream.Position := 0;
data := TStringList.Create;
data.LoadFromStream(importStream);
importStream.Free;
Encoding := TEncoding.Unicode;
ccpStream := TStringStream.Create(Format(FTemplate.Text, [data.Text]), Encoding);
try
try
cdsCCP_Head.LoadFromStream(ccpStream);
...
在我将 ClientDataSet 转换为 TWideStringField 之前,它运行良好。
谁能告诉我如何读取文件?
【问题讨论】:
-
我想如果您更改字段布局,您将无法将其读回,因为数据格式已更改。您不需要解码流:TWideString 是内部的。
标签: delphi unicode delphi-xe2 stringstream tclientdataset