Краткое описание приложения:
Я написал приложение Delphi, которое позволяет пользователю запускать запрос через базу данных MySQL или базу данных DB2. Для выполнения запроса приложение использует компонент TADOQuery.Ошибка SQL SUBSTR: что такое правильный синтаксис?
Приложение использует простой интерфейс для построения строки запроса, позволяя пользователям без знания SQL строить запросы. Ни в коем случае пользователь не видит SQL - все на простом английском языке, так что даже нетехнические пользователи могут понять, что они делают.
Приложение проверяет параметры, введенные пользователем с помощью интерфейса построения запросов, и создает инструкцию SQL в фоновом режиме, отправляя ее без фактического просмотра самого SQL.
Проблема:
Некоторые из запросов используют подстроки для извлечения данных из в определенных областях. Когда я использую инструкцию SUBSTR, я не добавляю пробелы после запятых в инструкции SUBSTR. Например, SUBSTR (поле, 1,10).
Это замечательно в большинстве случаев, но когда языковой стандарт на ПК установлен на другом языке с английского языка (например, голландский, измененный с помощью апплета региональных настроек в панели управления Windows), оператор SUBSTR в этой форме не работает при работе над базой данных DB2 (это выглядит отлично по сравнению с MySQL).
Чтобы получить SUBSTR для правильного выполнения в этой конкретной локали, мне нужно добавить пробелы после запятых. Например, SUBSTR (поле, 1, 10).
Поиск правильного синтаксиса для оператора SUBSTR показывает примеры как с запятыми, так и без них, хотя, очевидно, я обнаружил проблемы, когда не включал запятые, поэтому я был бы склонен идти с версией с пробелами. Однако я хочу знать, является ли это окончательным синтаксисом, независимо от того, получаю ли я какие-либо проблемы с использованием SUBSTR таким образом, и в качестве бонуса, почему я получаю ошибку, когда я не использую пробелы после запятые в первую очередь.