SQL, принимаемый 4D

(Информация о версии неизвестна, возможно, только в SVN)

SQL, принимаемый 4DPDO и SQL 4D

Описание

4D строго реализует стандарт ANSI 89 и соблюдает его. Крайне рекомендуется изучить документацию по 4D SQL перед его использованием. Документация расположена по ссылке » http://doc.4d.com/. Ниже представлен список характеристик 4D SQL: он не полон, но может использоваться для составления общего представления.

Характеристики 4D SQL
Характеристики Альтернативы Примечания
INTEGER Модифицируйте SQL для использования INT. INT является поддерживаемым целочисленным типом в 4Dv12.0.
CHAR Используйте VARCHAR. Не поддерживается в 4Dv12.0
UNION Не поддерживается. Используйте несколько запросов. Не поддерживается в 4Dv12.0
SELECT 1 + 1; SELECT 1 + 1 FROM _USER_SCHEMAS; FROM обязателен
FLOAT Преобразуйте значения FLOAT или STRING с помощью функций SQL 4D (CAST, ROUND, TRUNC или TRUNCATE) Не поддерживается в текущей версии драйвера PDO_4D
Строгая типизация Убедитесь, что ваш запрос SQL или ваш код PHP задает данные того типа, который ожидается Другими словами, нельзя вставить значение '1' (как строку) в строку типа INTEGER.
PDO::execute($row)(): работает только если все поля таблицы имеют тип TEXT или VARCHAR Используйте подготовленные запросы и используйте корректные типы. Расширение PDO преобразует все значения переданные через execute() в строки и ожидает, что база данных воспримет их корректно.
SELECT NULL FROM TABLE Не используйте константу NULL. Извлекайте ее из таблицы. Недопустимо использовать константу NULL в операторе SELECT
SELECT * FROM TABLE WHERE 1 Используйте WHERE 1 = 1 В операторе WHERE недопустимо использовать константы
SHOW TABLES Используйте системные таблицы Список таблиц, схемы, индексы и т.д. хранятся в следующих системных таблицах: _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS и _USER_SCHEMAS.
Разделитель структуры SQL Используйте следующую функцию для защиты элементов SQL: function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } Для экранирования имен элементов SQL (таблиц, полей, пользователей, групп, схем, первичных ключей и т.д.), поместите их в квадратные скобки, а закрывающие скобки должна быть задвоены.