OVH Cloud OVH Cloud

ADO et le caractère `

3 réponses
Avatar
archives
Bonsoir,

Je tente de migrer une application Access 97 (avec une dorsale sous MySQL)
de DAO vers ADO.
Certaines requêtes qui fonctionnaient parfaitement en DAO, générent
maintenant une erreur n° -2147217865 (Le tableau n'existe pas) si le nom de
la table n'est pas entouré du caractère ` (apostrophe inversée de code ascii
96).

Or, sur une console MySQL, il n'y a pas besoin de ce caractère pour exécuter
les requêtes, du moins, pas pour celles qui générent une erreur (par
exemple: "Select * From question").

Je voudrais s'avoir:
- s'il s'agit d'un bug Access (97) , ADO (2.7), MysQL (4.1.7) ou MyOLEDB
Provider (20/02/2001)
- si la présence de ce caractère est standard dans SQL. En d'autres termes,
si j'ajoute systématiquement le caractère ` pour toutes mes requêtes,
celles-ci resteront elles valables lorsque je changerai de base de données
(SQL Server, Oracle ou autre) ?

Merci de votre éclairage

3 réponses

Avatar
Sylvain Lafontaine
Selon les installations, le caractère de délimitation peut être
l'apostrophe, l'apostrophe inversé, les guillemets ou les crochets gauche et
droit []. Il est également possible de configurer d'autres caractères comme
étant le(s) caractère(s) de délimitation.

Ces caractères ne sont généralement pas obligatoire si vos noms de tables et
autres objets SQL ne contiennent pas de caractères particuliers tel que les
espaces blancs ou s'ils ne correspondent pas à certains mot-clefs utilisés
ailleurs (comme par exemple utiliser le mot Date (pas sûr de celui-ci) comme
nom de table).

Vous devriez vérifier la documentation de MySQL à ce sujet ainsi que le
pilote ODBC ou OLEDB que vous utilisez pour vos requêtes.

S. L.

"archives" wrote in message
news:41b49c86$0$3414$
Bonsoir,

Je tente de migrer une application Access 97 (avec une dorsale sous MySQL)
de DAO vers ADO.
Certaines requêtes qui fonctionnaient parfaitement en DAO, générent
maintenant une erreur n° -2147217865 (Le tableau n'existe pas) si le nom
de
la table n'est pas entouré du caractère ` (apostrophe inversée de code
ascii
96).

Or, sur une console MySQL, il n'y a pas besoin de ce caractère pour
exécuter
les requêtes, du moins, pas pour celles qui générent une erreur (par
exemple: "Select * From question").

Je voudrais s'avoir:
- s'il s'agit d'un bug Access (97) , ADO (2.7), MysQL (4.1.7) ou MyOLEDB
Provider (20/02/2001)
- si la présence de ce caractère est standard dans SQL. En d'autres
termes,
si j'ajoute systématiquement le caractère ` pour toutes mes requêtes,
celles-ci resteront elles valables lorsque je changerai de base de données
(SQL Server, Oracle ou autre) ?

Merci de votre éclairage




Avatar
archives
Par délimitation, je ne trouve que les délimiteurs de chaînes de caractères
qui sont l'apostrophe par défaut mais rien sur les délimiteurs de nom de
table.
Il y a un terme anglais consacré ?

"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Selon les installations, le caractère de délimitation peut être
l'apostrophe, l'apostrophe inversé, les guillemets ou les crochets gauche
et

droit []. Il est également possible de configurer d'autres caractères
comme

étant le(s) caractère(s) de délimitation.

Ces caractères ne sont généralement pas obligatoire si vos noms de tables
et

autres objets SQL ne contiennent pas de caractères particuliers tel que
les

espaces blancs ou s'ils ne correspondent pas à certains mot-clefs utilisés
ailleurs (comme par exemple utiliser le mot Date (pas sûr de celui-ci)
comme

nom de table).

Vous devriez vérifier la documentation de MySQL à ce sujet ainsi que le
pilote ODBC ou OLEDB que vous utilisez pour vos requêtes.

S. L.

"archives" wrote in message
news:41b49c86$0$3414$
Bonsoir,

Je tente de migrer une application Access 97 (avec une dorsale sous
MySQL)


de DAO vers ADO.
Certaines requêtes qui fonctionnaient parfaitement en DAO, générent
maintenant une erreur n° -2147217865 (Le tableau n'existe pas) si le nom
de
la table n'est pas entouré du caractère ` (apostrophe inversée de code
ascii
96).

Or, sur une console MySQL, il n'y a pas besoin de ce caractère pour
exécuter
les requêtes, du moins, pas pour celles qui générent une erreur (par
exemple: "Select * From question").

Je voudrais s'avoir:
- s'il s'agit d'un bug Access (97) , ADO (2.7), MysQL (4.1.7) ou MyOLEDB
Provider (20/02/2001)
- si la présence de ce caractère est standard dans SQL. En d'autres
termes,
si j'ajoute systématiquement le caractère ` pour toutes mes requêtes,
celles-ci resteront elles valables lorsque je changerai de base de
données


(SQL Server, Oracle ou autre) ?

Merci de votre éclairage








Avatar
Sylvain Lafontaine
Généralement, une fois défini, le caractère de délimitation (ou les
caractères de déliminitation si début/fin comme avec les crochets) reste le
même pour tous les types d'objets à l'intérieur d'une requête. Cependant,
je ne connais pas MySQL et ne peut donc l'affirmer avec certitude.

À mon avis, votre problème est plus un problème MySQL qu'un problème Access;
vous devriez reposer votre question dans un newsgroup plus approprié.

S. L.

"archives" wrote in message
news:41b4bcdc$0$16329$
Par délimitation, je ne trouve que les délimiteurs de chaînes de
caractères
qui sont l'apostrophe par défaut mais rien sur les délimiteurs de nom de
table.
Il y a un terme anglais consacré ?

"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Selon les installations, le caractère de délimitation peut être
l'apostrophe, l'apostrophe inversé, les guillemets ou les crochets gauche
et

droit []. Il est également possible de configurer d'autres caractères
comme

étant le(s) caractère(s) de délimitation.

Ces caractères ne sont généralement pas obligatoire si vos noms de tables
et

autres objets SQL ne contiennent pas de caractères particuliers tel que
les

espaces blancs ou s'ils ne correspondent pas à certains mot-clefs
utilisés
ailleurs (comme par exemple utiliser le mot Date (pas sûr de celui-ci)
comme

nom de table).

Vous devriez vérifier la documentation de MySQL à ce sujet ainsi que le
pilote ODBC ou OLEDB que vous utilisez pour vos requêtes.

S. L.

"archives" wrote in message
news:41b49c86$0$3414$
Bonsoir,

Je tente de migrer une application Access 97 (avec une dorsale sous
MySQL)


de DAO vers ADO.
Certaines requêtes qui fonctionnaient parfaitement en DAO, générent
maintenant une erreur n° -2147217865 (Le tableau n'existe pas) si le
nom
de
la table n'est pas entouré du caractère ` (apostrophe inversée de code
ascii
96).

Or, sur une console MySQL, il n'y a pas besoin de ce caractère pour
exécuter
les requêtes, du moins, pas pour celles qui générent une erreur (par
exemple: "Select * From question").

Je voudrais s'avoir:
- s'il s'agit d'un bug Access (97) , ADO (2.7), MysQL (4.1.7) ou
MyOLEDB
Provider (20/02/2001)
- si la présence de ce caractère est standard dans SQL. En d'autres
termes,
si j'ajoute systématiquement le caractère ` pour toutes mes requêtes,
celles-ci resteront elles valables lorsque je changerai de base de
données


(SQL Server, Oracle ou autre) ?

Merci de votre éclairage