0

如何在 Delphi的TStringField.FieldName属性上使用 Unicode(或只是西里尔字母)字符?TClientDataSet

我已经尝试过了,但它在最后一行不起作用:

aStringField := TStringField.Create(aClientDataSet);
aStringField.FieldName := 'аАяЯ';
aStringField.DataSet := aClientDataSet;
aClientDataSet.CreateDataset;
4

1 回答 1

1

下面的程序编译并执行(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.

Otoh,如果我使用您的 aStringField 声明(即作为 TField)和创建它的方法,我会在 aClientDataSet.CreateDataset 上收到 r/time 错误“无效的字段类型”。

于 2014-05-23T18:54:53.083 回答