如何在Delphi的TStringField.FieldName属性上使用Unicode(或西里尔文)字符?
如何在Delphi上的如何在Delphi的TStringField.FieldName属性上使用Unicode(或西里尔文)字符?,delphi,unicode,tclientdataset,tfield,tstringfield,Delphi,Unicode,Tclientdataset,Tfield,Tstringfield,如何在Delphi上的TClientDataSet的TStringField.FieldName属性上使用Unicode(或西里尔文)字符 我试过这个,但在最后一行不起作用: aStringField := TStringField.Create(aClientDataSet); aStringField.FieldName := 'аАяЯ'; aStringField.DataSet := aClientDataSet; aClientDataSet.CreateDataset; 下面的程
TClientDataSet
的TStringField.FieldName
属性上使用Unicode(或西里尔文)字符
我试过这个,但在最后一行不起作用:
aStringField := TStringField.Create(aClientDataSet);
aStringField.FieldName := 'аАяЯ';
aStringField.DataSet := aClientDataSet;
aClientDataSet.CreateDataset;
下面的程序编译并执行(XE4)时没有错误
program CDS;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, db, dbclient;
procedure Test;
var
aClientDataSet : TClientDataSet;
aStringField : TStringField;
begin
aClientDataSet := TClientDataSet.Create(Nil);
aStringField := TStringField.Create(aClientDataSet);
aStringField.FieldName := 'аАяЯ';
aStringField.DataSet := aClientDataSet;
aClientDataSet.CreateDataset;
end;
begin
Test;
end.
o如果我使用您的aStringField声明(即作为TField)和您创建它的方法,我会在aClientDataSet.CreateDataset上得到r/time错误“无效字段类型”。“不工作”不会传递任何信息。您收到了什么错误消息?错误:未找到字段。英文
FileName
很好用。人们通常用英文名称来表示列。我需要使用Cyrilly。我会理解DisplayLabel
,但对于FieldName
,它不仅仅是奇怪的。这是一个客户端数据集,您现在似乎正在构建它。为什么有这个要求?我使用了TStringField,得到错误“Field not found”。这个问题被简化了。好吧,就像我说的,它对我很有效。您使用的是什么Delphi版本?你试过运行我发布的内容吗?Delphi XE5。我还没有试过你的代码,但它看起来和我的很相似。好吧,我的答案中的程序将你发布的内容转化为SSCCE,这不会产生错误。如果它对您不起作用,您仍然没有说,那么问题可能是XE4和XE5之间的一些差异;如果是这样,但是你的代码仍然不起作用,那一定是因为你没有向我们展示一些东西。祝你狩猎愉快!我显然不能再帮你了。