当我尝试将Stream加载到ClientDataSet时,我得到以下异常:
datapacket不匹配
ClientDataSet有几个WideStringfields,所以我尝试使用TStringStream.Create
中的编码。如果我离开编码,我会得到一个例外:
字段XXZ的类型不匹配;假设:TWideString,actual: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
之前,它完美无缺。
任何人都可以告诉我我能做些什么来阅读文件?
答案 0 :(得分:0)
问题是来自ClientDataSet
的错误/旧模板
要创建新模板:
ClientDataSet
。使用新生成的Xml可以正确识别字段,并且已经提到过@ArnaudBouchez,无需解码流。