如何对包含空格的字段名上的 ADO 表进行排序?

Posted

技术标签:

【中文标题】如何对包含空格的字段名上的 ADO 表进行排序?【英文标题】:How Can I Sort an ADO Table on a Fieldname Containing a Space? 【发布时间】:2009-11-16 16:35:29 【问题描述】:

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

我正在做以下事情:

var
  ArticlesTable: TADOTable;

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

这非常有效,让我可以高效地处理记录,并在记录进入时按 CITY 字段升序排列。

但是,现在我想按字段“LAST NAME”进行排序,其中包含一个嵌入的空格。但是当我使用语句时:

  ArticlesTable.Sort := 'CITY';

我收到错误消息:

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

我见过the help on the SORT string syntax。它表示以逗号分隔多个字段,并在字段后添加ASC或DESC以进行升序或降序排序。但它并没有说明如果字段名中有空格该怎么办。

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

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

我确信一定有一种我不知道的简单方法来做到这一点。

【问题讨论】:

【参考方案1】:

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

ArticlesTable.Sort := '[LAST NAME]';

【讨论】:

谢谢!!那是我不知道我需要的语法。 *** 再次万岁。我花了将近一个小时在网上搜索,不知道该去哪里找,但 skamradt 在大约 3 分钟内回复了我。 如果Access在你试图创建一个包含空格的字段名时骂你肯定会很好!

以上是关于如何对包含空格的字段名上的 ADO 表进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

Ado.net 断开更新整个表

Solr - 按多值字段上的OR搜索的最大匹配对结果进行排序

如何对窗口中的某个字段进行排序以获得前 N 个值,并对 DolphinDB 中的相应字段进行聚合计算?

Flutter如何对集合中的文档进行排序,其中包含每个文档的编号字段

在 django 中,如何对字段上的模型进行排序,然后获取最后一项?

对计算字段进行排序和过滤