[Résolu] errer de syntaxe requette JDBC

wiss20000
[Résolu] errer de syntaxe requette JDBC

salut,
j'ai un problème dans mon code
je veux sélectioné une colonne dans ma table mais elle contient le caractère ":"
j'effectu la requette suivante
String query = "SELECT VLR_LGOS:RQ_LC FROM test01 where (Object = 'MSC01') ";
mais l'erreur suivante est apparue
Erreur lors de la connexion : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'VLR_LGOS:RQ_LC'.
comment faire :? :? :?

fredericmazue

Le problème est que : dans un nom de colonne est totalement illégal en SQL, pour autant que je sache.
J'ai vérifié, Access l'accepte quand même :(
Microsoft et les standards... :(

Bon maintenant c'est normal que le pilote qui compile (=analyse) la requête te jette.
Ce qui est moins normal est que le pilote semble signé Microsoft si j'en crois le message d'erreur, et il devrait accepter

Bref tu es coincé. Alors que faire? A mon humble avis, la solution qui s'impose est de renommer correctement la colonne de la table en remplaçant : par _
Maintenant si 1000 applications accèdent à la base, c'est sans doute plus facile à dire qu'à faire ....

Essaie quand même avec un caractère d'échappement

SELECT VLR_LGOS\:RQ_LC FROM test01 where (Object = 'MSC01')

Donc dans une chaîne Java

"SELECT VLR_LGOS\\:RQ_LC FROM test01 where (Object = 'MSC01')"

Sans garantie....

wiss20000

fredericmazue wrote:

Bref tu es coincé. Alors que faire? A mon humble avis, la solution qui s'impose est de renommer correctement la colonne de la table en remplaçant : par _


ce ci n'est pas possible car je dois concerver les noms de mes champs
Quote:

Maintenant si 1000 applications accèdent à la base, c'est sans doute plus facile à dire qu'à faire ....

Essaie quand même avec un caractère d'échappement

SELECT VLR_LGOS\:RQ_LC FROM test01 where (Object = 'MSC01')

Donc dans une chaîne Java

"SELECT VLR_LGOS\\:RQ_LC FROM test01 where (Object = 'MSC01')"

Sans garantie....


merci mais ça marche pas voici l'erreur :(
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu
:!:
fredericmazue

Quote:
merci mais ça marche pas voici l'erreur

J'avais bien dit sans garantie...

Et comme ça:

SELECT "VLR_LGOS:RQ_LC" FROM test01 where (Object = 'MSC01')

Remarque bien: des guillemets et pas des quotes.
donc dans une chaîne Java

"SELECT \"VLR_LGOS:RQ_LC\" FROM test01 where (Object = 'MSC01')"

wiss20000
Résolut

fredericmazue wrote:

"SELECT "VLR_LGOS:RQ_LC" FROM test01 where (Object = 'MSC01')"


merci ça marche :D :D :D :D :mrgreen:
vrément vous etre le meilleur :mrgreen:
bast2
Re: Résolut

wiss20000 wrote:
merci ça marche :D :D :D :D :mrgreen:
vrément vous etre le meilleur :mrgreen:

Fred n'est pas un geek pour rien 8)