Я использую 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, потому что есть другие программы, с которыми я не работаю, которые зависят от него.
Я уверен, что должен быть простой способ сделать это, о котором я не знаю.