Je porte un code VRAIMENT ancien pour utiliser les composants UniDAC. J'ai frappé un mur avec un sql UPDATE spécifique qui change un champ nommé "return". Envelopper simplement le champ entre guillemets ne résout pas le problème, car le dialecte SQL de la base de données est 1, ce qui ne prend pas en charge les délimiteurs de champs de guillemets doubles. Y at-il moyen de contourner cela sans changer de domaine? Je suis sur delphi 7, et je m'éloigne des composants interbase db.IBDAC/UniDAC + interbase 6 ou 7 + un champ de table nommé "return"
Modifier: SQL est comme suit:
update logger set
returning = :RETURNING
where locator = :LOCATOR
renvoie l'erreur suivante en essayant de préparer:
---------------------------
Ww
---------------------------
Dynamic SQL Error
SQL error code = -104
Token unknown - line 3, char -1
where.
---------------------------
OK
---------------------------
Cela se produit même quand je mets le dialecte SQL client à 1 dans le code :
query1.Connection.SpecificOptions.Values['SQLDialect'] := '1';
Je ne sais pas Interbase trop bien, mais je sais que dans SQL Server, vous pouvez mettre [crochets] autour du nom du champ dans une situation comme celle-ci. Cela fonctionne-t-il aussi chez IB? –
vient d'essayer, ne fonctionne pas. – Stamp
D'où vient cette erreur? Cela provient-il de la base de données ou du composant que vous utilisez? –