Выполнение SQL с пробелами и специальными символами в имени поля/колонки
Выполнение SQL-запросов в Delphi-компоненте TQuery (или специального
средства SQL-запроса в Database Desktop, Visual dBASE или Paradox for Windows)
требует специального синтаксиса для любых колонок, содержащих пробелы или
специальные символы.
Пользуясь таблицей Biolife.DB из демо-данных Delphi, проиллюстрируем
использование любых специфических требований синтаксиса. Запрос SQL Select мог
бы быть сформирован следующим образом:
SELECT
Species No,
Category,
Common_Name,
Species Name,
Length (cm),
Length_In,
Notes,
Graphic
FROM
BIOLIFE
В нормальной ситуации пробелы в номерах и именах колонок, длина
в сантиметрах, круглые скобки и другие символы могут стать причиной
синтаксической ошибки.
Для коррекции синтаксиса в вышеприведенном SQL-выражении необходимо внести
два изменения. Во-первых, любые колонки, содержищие пробелы или специальные
символы должны быть заключены в двойные или одинарные (апострофы) кавычки.
Во-вторых, ссылке на имя колонки должна предшествовать ссылка на саму таблицу и
точка после нее. Второе требование особенно важно, поскольку заключенная в
кавычки строка интерпретируется не как строковое выражение, а как значение
колонки. Ниже приведено правильно отформатированное выражение:
В приведенном выше примере таблицный псевдоним
BIOLIFE используется в качестве ссылки на саму таблицу и располагается перед
именем колонки . Данная ссылка может принимать форму имени псевдонима, реального
имени таблицы, или ссылаться на имя файла при использовании таблиц dBASE или
Paradox. Следующее SQL-выражение должно также хорошо работать.
Примечание: Данное SQL-выражение может использоваться при условии, что
необходимый псевдоним уже открыт. В случае TQuery это означает, что псевдоним
определен в свойстве DatabaseName.
Наконец, есть два средства
автоматического форматирования специального синтаксиса. Первым является Visual
Query Builder, включаемой в версию Client/Server Delphi. Visual Query Builder
выполняет такое форматирование автоматически, по мере создания запроса. Другое
средство - Database Desktop Show SQL, доступный при создании и редактировании
запроса QBE-типа. После выбора пункта меню Query|Show SQL, отображаемый
SQL-текст может быть вырезан и вставлен где необходимо.
Если Вас заинтересовала или понравилась информация по разработке на Delph - "SQL - вложенные пробелы", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!