[MySQL/JAVA]pb avec driver ODBC

pb avec driver ODBC [MySQL/JAVA] - SQL/NoSQL - Programmation

Marsh Posté le 18-11-2004 à 13:53:06    

bonjour,
j'utilise la derniere version du driver ODBC pour MySQL depuis une application java
je veux faire cette requete :

Code :
  1. SELECT c.com_tmp_num from commande_tmp c where ('select count(*) from ligne_commande_tmp l where l.com_tmp_num=c.com_tmp_num')=0;


 
la requete est bien executee, mais le driver ODBC me renvoye une erreur :

Code :
  1. java.sql.SQLException: [MySQL][ODBC 3.51 Driver][mysqld-4.0.20a-nt-max]You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'c where ('select count(*) from ligne_commande_tmp l where l.com


 
je ne comprend pas ...
 
si vous pouvez m'aider
 
merci ;)

Reply

Marsh Posté le 18-11-2004 à 13:53:06   

Reply

Marsh Posté le 18-11-2004 à 14:04:41    

C'est pas le driver odbc le pb, c'est ta requête plutôt...[:dawa]
Le "where('une requête')=0" ça sort d'où? :??:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:07:35    

ben c'est une sous requete
mais elle marche la sous requete

Reply

Marsh Posté le 18-11-2004 à 14:09:40    

jeromejanson a écrit :

ben c'est une sous requete
mais elle marche la sous requete


euh oui mais non, je ne pense pas que ça existe comme syntaxe ça...t'as essayé de l'exécuter directement ton

Code :
  1. SELECT c.com_tmp_num from commande_tmp c where ('select count(*) from ligne_commande_tmp l where l.com_tmp_num=c.com_tmp_num')=0;


 
:??:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:23:00    

rien a voir mais pq tu fais de l'odbc en java avec mysql [:autobot]
 
 
(et comme le dit skeye, ta syntaxe est completement bidon. d'ailleurs mysql te le dit aussi, ché pas si t'as vu mais y'a un message d'erreur qui te dit justement quelle est l'erreur [:mlc])

Reply

Marsh Posté le 18-11-2004 à 14:23:39    

You have an error in your SQL syntax. You have an error in your SQL syntax.You have an error in your SQL syntax. [:chacal_one333]

Reply

Marsh Posté le 18-11-2004 à 14:28:01    

ben justement, si je le fais en ligne de commande sous mysql, ca marche

Reply

Marsh Posté le 18-11-2004 à 14:28:32    

the real moins moins a écrit :

rien a voir mais pq tu fais de l'odbc en java avec mysql [:autobot]
 


 
pourquoi, tu veux que je fasse quoi????

Reply

Marsh Posté le 18-11-2004 à 14:29:14    

euh du jdbc avec un driver type 4?

Reply

Marsh Posté le 18-11-2004 à 14:29:28    

jeromejanson a écrit :

ben justement, si je le fais en ligne de commande sous mysql, ca marche

mais bien sur... et la marmotte...

Reply

Marsh Posté le 18-11-2004 à 14:29:28   

Reply

Marsh Posté le 18-11-2004 à 14:30:54    

jeromejanson a écrit :

ben justement, si je le fais en ligne de commande sous mysql, ca marche


[:yoko54]
T'es sûr d'avoir bien copié la même ligne?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:33:30    

j'ai fais un imprime ecran, je vous l'envoi si vous voulez

Reply

Marsh Posté le 18-11-2004 à 14:34:08    

the real moins moins a écrit :

euh du jdbc avec un driver type 4?


 
dis moi en un peu plus, parce que la je comprend pas ????

Reply

Marsh Posté le 18-11-2004 à 14:36:14    

jeromejanson a écrit :

j'ai fais un imprime ecran, je vous l'envoi si vous voulez


 
Je veux bien...
http://www.imageshack.us/
En tout cas si ça passe sous mysql directement c'est très mal, parce-que ça n'existe pas en sql en vrai...:o
Donc dis plutôt ce que tu veux faire, qu'on te trouve quelquechose qui existe...:o
 

jeromejanson a écrit :

dis moi en un peu plus, parce que la je comprend pas ????


http://java.sun.com/products/jdbc/


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:38:53    

Reply

Marsh Posté le 18-11-2004 à 14:39:01    

(mais ça ne change rien à ta requete débile)

Reply

Marsh Posté le 18-11-2004 à 14:39:39    

http://img27.exs.cx/img27/8386/mysql1.jpg

Reply

Marsh Posté le 18-11-2004 à 14:40:25    

mon but et de recuperer les "commande_tmp" qui n'ont pas de "ligne_commande_tmp"

Reply

Marsh Posté le 18-11-2004 à 14:41:18    

ok, donc le truc c que je ne devrais pas utiliser le driver ODBC, mais JDBC ???

Reply

Marsh Posté le 18-11-2004 à 14:41:19    


bon ok, je suppose que mysql le prend...en attendant le driver odbc t'envoie bouler à cause de la syntaxe, donc il faut convertir ça dans un SQL un peu plus standard...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:41:53    

[:wam]
 
t'es sur que c'est la meme version de mysql des 2 cotés? et le meme datamodel?

Reply

Marsh Posté le 18-11-2004 à 14:42:05    

jeromejanson a écrit :

mon but et de recuperer les "commande_tmp" qui n'ont pas de "ligne_commande_tmp"


mot-clé 'EXISTS'.
http://www.techonthenet.com/sql/exists.htm


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:42:18    

skeye >> le message provient de mysql, là, pas du driver, le driver il parse pas les requetes

Reply

Marsh Posté le 18-11-2004 à 14:43:04    

the real moins moins a écrit :

skeye >> le message provient de mysql, là, pas du driver, le driver il parse pas les requetes


t'es sûr que le driver parse pas la requête avant de l'envoyer?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:43:47    

oui

Reply

Marsh Posté le 18-11-2004 à 14:44:42    


alors je comprends pas... [:mrbrelle]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:47:16    

donc ca serait plutot ca :

Code :
  1. SELECT c.com_tmp_num from commande_tmp c where not exists (select * from ligne_commande_tmp l where l.com_tmp_num=c.com_tmp_num);

Reply

Marsh Posté le 18-11-2004 à 14:48:34    

jeromejanson a écrit :

donc ca serait plutot ca :

Code :
  1. SELECT c.com_tmp_num from commande_tmp c where not exists (select * from ligne_commande_tmp l where l.com_tmp_num=c.com_tmp_num);




ça me parait déjà nettement mieux.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:48:51    

ben ca ne passe pas :(

Reply

Marsh Posté le 18-11-2004 à 14:49:15    

jeromejanson a écrit :

ben ca ne passe pas :(


sous mysql?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:49:57    

yes, sous mysql ca passe pas

Reply

Marsh Posté le 18-11-2004 à 14:50:14    

jeromejanson a écrit :

yes, sous mysql ca passe pas


quelle erreur?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:52:45    

tu veux pas essayer avec autre chose que le bridge odbc? (le driver jdbc de mysql pour javax.sql par exemple http://dev.mysql.com/downloads/connector/j/3.0.html :whistle:)


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-11-2004 à 14:53:49    

http://img88.exs.cx/img88/9682/mysql.jpg

Reply

Marsh Posté le 18-11-2004 à 14:54:34    

ok, je mettrai de coter ODBC pour passer a JDBC, mais une fois que j'aurai resolu mon probleme ;)

Reply

Marsh Posté le 18-11-2004 à 14:54:59    

non


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-11-2004 à 14:56:18    

Il doit pas aimer l'alias dans la sous-requete...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 14:57:29    

skeye a écrit :

Il doit pas aimer l'alias dans la sous-requete...


 
c'est ce que je pense, mais je sais pas comment faire autrement ???

Reply

Marsh Posté le 18-11-2004 à 14:58:28    

jeromejanson a écrit :

c'est ce que je pense, mais je sais pas comment faire autrement ???


bah

Code :
  1. SELECT commande_tmp.com_tmp_num from commande_tmp where not exists (select * from ligne_commande_tmp where ligne_commande_tmp.com_tmp_num = commande_tmp.com_tmp_num);


:??:


Message édité par skeye le 18-11-2004 à 14:58:47

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2004 à 15:00:33    

c'est la meme chose :(

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed