How Can I Sort an ADO Table on a Fieldname Containing a Space?

亡梦爱人 提交于 2019-12-20 06:36:49

问题


I am using Delphi, but this is a simple and general problem:

I'm doing the following:

var
  ArticlesTable: TADOTable;

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

This works very well and allows me to efficiently process the records one by one with the records ordered ascending by the CITY field as they are coming in.

However, now I wanted to order by the field "LAST NAME" which has an embedded space in it. But when I use the statement:

  ArticlesTable.Sort := 'CITY';

I get the error message:

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

I have seen the help on the SORT string syntax. It says to separate multiple fields by commas, and to add ASC or DESC after a field to sort ascending or descending. But it doesn't say what to do if a fieldname has a space in it.

I've tried putting the field name in single and double quotes and even using #20 as the space character, but those don't work.

I can't change the field name on the Microsoft Access database, because there are other programs I don't work with that depend on it.

I'm sure there must be an easy way to do this that I don't know about.


回答1:


Have you tried surrounding the fieldname by square brackets? for example:

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


来源:https://stackoverflow.com/questions/1743303/how-can-i-sort-an-ado-table-on-a-fieldname-containing-a-space

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!