SELECT * FROM table WHERE id='1';
MySQL, PostgreSQL et SQLite semblent accepter qu'on mettent des guillemets autours des valeurs des champs déclarés en tant INTEGER.
Savez-vous si d'autres bases de données l'acceptent aussi?
SELECT * FROM table WHERE id='1';
MySQL, PostgreSQL et SQLite semblent accepter qu'on mettent des guillemets autours des valeurs des champs déclarés en tant INTEGER.
Savez-vous si d'autres bases de données l'acceptent aussi?
C'est ce qu'on appelle une conversion implicite.
Voici ce que j'en pense : http://www.developpez.net/forums/d70...e/#post4083908
C'est certes une facilité pour les utilisateurs finaux qui n'ont qu'une connaissance limitée de la technique, mais pour un développeur c'est le mal absolu !
Oui je sais, c'est mal, mais j'ai absolument besoin de savoir quels SGBD l'acceptent et quels SGBD ne l'acceptent pas.
Est-ce que vous pouvez me citer un SGBD qui refuse cette syntaxe?
Je n'en connais aucun, les bases avec lesquelles je travaille acceptent les conversions implicites (Oracle / MS SQL Server / Sybase SQL Server).
Pourquoi vous posez-vous cette question ?
Merci beaucoup pour votre réponse,
Je dois rendre une application portable et celle-ci utilise des guillemets quelque soit le type.
L'application marche parfaitement donc il n'est pas question de modifier des choses qui sont déjà portables.
J'étudie actuellement les différents points qui peuvent limiter la portabilité et celui la m'a paru important.
Donc pour l'instant ça passe sur:
MySQL / PostgreSQL / SQLite / Oracle / MS SQL Server / Sybase SQL Server
Quelqu'un en connait d'autres?
Je crois que je vais devenir dingue avec cette question, partout où je la pose elle suscite un énorme désaccord. Donc je reprends: l'application fonctionne, la personne qui l'a faite à effectivement été négligeant sur ce point, il y a beaucoup de choses qui s'imbriquent les unes dans les autres et réparer cette négligence ne me semble pas possible dans le délai qui m'est imposé. Et en plus ce n'est pas ce pour quoi on me paye. Ce pour quoi on me paye c'est rendre cette application portable sur toutes les bases de données sur lesquelles c'est possible sans trop de difficulté, le plus rapidement possible et pour le prix le moins cher.
C'est à dire avoir un code toujours aussi négligeant, qui marche toujours aussi bien pour l'utilisateur final mais avec plus de base de données. Point final.
Je sais que c'est mal d'être négligeant, je suis développeur aussi, mais je ne peux pas faire autre chose que ce pourquoi le client me paye, ni lui faire plus pour le même prix s'il ne veut pas dépenser d'avantage... et si ça marche comme ça d'une certaine façon il a raison.
Je comprends bien votre problématique qui est assez courante, on hérite de quelque chose de plus ou moins bien sur lequel on n'a ni le temps ni l'investissement nécessaire pour faire des corrections / évolutions.
Je revenais juste sur la phrase comme quoi l'application fonctionne parfaitement. Elle vous donne le résultat que vous attendez oui, mais de manière parfaite non.
Oui je suis d'accord, on va dire fait ce que l'utilisateur final lui demande sans inconvénients visibles de son point de vue.
Partager