Pilote 4D pour PDO
PHP Manual

Indications sur le SQL supporté par 4D

()

Indications sur le SQL supporté par 4DPDO et SQL 4D

Description

4D implémente le standard ANSI 89 strict, et le fait respecter. Il est recommandé de bien lire la documentation 4D sur les commandes disponibles, dans la documentation à l'adresse suivante : » http://www.4d.fr/support/docs.html. La liste des particularités de 4D ci-dessous est une introduction, et ne saurait être exhaustive.

Liste des caractéristiques SQL de 4D
Caractéristique Solution Note
INTEGER INT est le type officiel. Modifier la requête de création de la table.  
UNION Non supporté. Faire plusieurs requêtes.  
LEFT JOIN Utiliser la notation SQL 89 (cf exemple #3 PDO_4D)  
SELECT 1 + 1; SELECT 1 + 1 FROM _USER_SCHEMAS;  
FLOAT Transtyper le FLOAT avec la fonction SQL 4D (ROUND, TRUNC ou TRUNCATE) Non supporté dans le pilote PDO_4D v1.0
Typage fort : il faut fournir le type que 4D attend. On ne peut pas insérer '1' (la chaîne), dans une colonne entière.   Non supporté
PDO::execute($row)() ne fonctionne que si les toutes les colonnes de la table cible sont de type TEXT Utiliser les commandes préparées, et spécifier les bons types. L'extension PDO fait passer toutes les données comme des chaînes, et présume que la base assure le transtypage.
SELECT NULL FROM TABLE Il n'est pas autorisé d'utiliser la constante NULL dans les colonnes sélectionnées N'utilisez pas la constante NULL. Extrayez-la de la table elle-même
SELECT * FROM TABLE WHERE 1 Une constante ne peut pas être utilisée seule dans une clause WHERE Utilisez 1 = 1
SHOW TABLES La liste es tables, schéma, index, etc. est rassemble dans 7 tables 4D Utilisez les tables _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS et _USER_SCHEMAS.
Délimiteur de structures SQL Pour la protection des noms d'objets SQL (tables, champs, utilisateurs, groupe, schéma, clé primaire, etc.. ) il faut doubler les crochets fermants et mettre tout l'identifiant entre crochets. Utilisez la fonction de protection suivante sur les noms d'objets SQL, et placez-le résultat entre crochets : str_replace(']',']]', $table).

Note: Dans les versions 11.3 et plus ancien, il n'était pas possible d'utiliser la syntaxe SQL suivante, durant la création de tables : id INT PRIMARY KEY. Ce problème a été corrigé en 4D 11.4 et plus récent. Il est recommandé de passer à cette version de 4D.


Pilote 4D pour PDO
PHP Manual