Bonjour tout le monde,

Alors voilà j'ai un besoin urgent de l'aide de quelqu'un concernant un problème que je ne saurait vraiment pas expliquer tellement il est illogique ...

Alors en fait j'ai une base de données MySQL qui a été créée à partir de la migration d'une base de données Access. Pour certaines raisons, j'ai du garder tout de même la base de données Access ce qui fait que j'ai une base de données Access contenant des tables liées à celles de la base MySQL (jusque là aucun problème). Tout se passait bien jusqu'à UNE exception sur une requête SQL m'indiquant "ODBC -- l'appel à échoué".

J'ai donc décidé d'essayer sur une base access non liée, cette requête fonctionne et de même sur la base de données MySQL. Ce qui me fait penser que le problème vient de la communication entre les deux.

Et j'ai finalement découvert le problème qui est le suivant :
La requête que je doit exécuter (et qui fonctionne très bien sur Access non liée ou MySQL) possède dans sa clause WHERE une condition sur un champ et cette condition est de la taille de 255 chars (la taille maximale du champ en question sur la base Access ET sur la base MySQL). Et apparement, c'est justement parce que la taille est de 255 chars dans la clause WHERE que ça plante !! Car dés que je retire 2 charactères à la chaîne, cela focntionne ... (ça me renvoie rien forcément puisque la chaîne de 253 chars n'existe pas mais ça ne plante pas).

Pour être plus précis :

Requête qui fonctionne sur Access non liée, MySQL MAIS PAS sur Access liée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM [CON_E_6] WHERE [Ecriture] = '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000859';
(car la chaîne fait 255 charactères)

Requête qui fonctionne sur Access non liée, MySQL ET sur Access liée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM [CON_E_6] WHERE [Ecriture] = '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000859';
(car la chaîne fait 253 charactères)

Et donc du coup je ne vois vraiment pas comment je peux faire...un idée ? C'est vraiment urgent