1

我正在使用 Delphi,但这是一个简单而普遍的问题:

我正在执行以下操作:

var
  ArticlesTable: TADOTable;

begin
  ArticlesTable.DisableControls;
  ArticlesTable.Sort := 'CITY';
  ArticlesTable.First;
  while not ArticlesTable.Eof do begin
    ...
    ArticlesTable.Next;
  end;

这非常有效,并且允许我在记录进入时按 CITY 字段升序排列有效地处理记录。

但是,现在我想按其中包含嵌入空间的“姓氏”字段进行排序。但是当我使用该语句时:

  ArticlesTable.Sort := 'CITY';

我收到错误消息:

  EOleException:  Arguments are of the wrong type, are out of acceptable range, 
                  or are in conflict with one another.

我已经看到了关于 SORT 字符串语法的帮助。它表示以逗号分隔多个字段,并在字段后添加ASC或DESC以进行升序或降序排序。但它没有说明如果字段名中有空格该怎么办。

我尝试将字段名称放在单引号和双引号中,甚至使用 #20 作为空格字符,但这些都不起作用。

我无法更改 Microsoft Access 数据库上的字段名称,因为我不使用的其他程序依赖于它。

我敢肯定,一定有一种我不知道的简单方法可以做到这一点。

4

1 回答 1

11

您是否尝试过用方括号将字段名括起来?例如:

ArticlesTable.Sort := '[LAST NAME]';
于 2009-11-16T16:38:15.590 回答