Par contre, dans ta demande, tu ne pr�cises pas si l'erreur se produit � l'ex�cution 
de la requ�te ou lors de l'appel Java � Rs.getString() ?

Dans le premier cas, une incompatibilit� entre les formats de requ�te SQL fait que, 
selon la degr� de param�trage de ton moteur d'�criture des requ�tes, une partie de 
l'application au moins devra �tre r�-�crite.

Dans le deuxi�me cas, cela serait plut�t que la colonne n'est pas trouv�e dans le 
ResultSet. As-tu essay� de faire un petit programme pour afficher ce que renvoie le 
Rs.getMetadata.getColumnName(<int>) ? Notamment sur la gestion des majuscules / 
minuscule dans les noms de colonne.

Je ne suis pas sur que cela t'aide, mais � tout hasard, c'est peut-�tre une piste.

-- 
Fabien Hommet

-----Message d'origine-----
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Envoy� : jeudi 26 d�cembre 2002 10:29
� : [EMAIL PROTECTED]
Objet : RE: JDBC - TableName . FieldName


Je proposerais un getString(index) au lieu de getString(String), mais �a suppose que 
tu pr�cises les champs (et leur ordre) � r�cup�rer dans ton SELECT et non pas *.
De toute fa�on, je trouve �a plus propre de ne pas tout ramener si tu ne te sers pas 
de tout. 
Manu 
-----Original Message----- 
From: Libert S�bastien [mailto:[EMAIL PROTECTED]] 
Sent: mardi 24 d�cembre 2002 10:23 
To: '[EMAIL PROTECTED]' 
Subject: JDBC - TableName . FieldName 


Hello ! 
  
En ce jour de r�veillon de No�l, je fais appel aux braves de la liste ;-) 
  
Je suis en cours de test de migration d'une application JDBC MySQL vers SQLServer. Je 
vous passe bien entendu le plaisir �vident de trouver le driver JDBC pas cher et 
sympa... bref, je tombe sur un os.
J'ai pris comme habitude dans mes rs.getString () d'utiliser les noms complets 
(table+champs) pour acc�der � mes donn�es. Cela me permets d'�viter les soucis avec 
les nombreux JOIN de mes requ�tes.
 
  
Ainsi : 
  
Query = � SELECT * FROM customer LEFT OUTER JOIN project ON customer.id_customer = 
project.id_customer � 
Rs = stmt.executeQuery (Query); 
Cust = Rs.getString ("customer.name"); 
Proj = Rs.getString ("project.name"); 
  
  
Cela fonctionne sous MySQL. 
  
  
Maintenant, le code ci-dessus sous SQL Server me donne une erreur � Invalid column 
name �. En gros, interdiction d'utiliser le nom complet des champs.
Il y a �videmment la clause AS � placer dans la requ�te SQL pour �viter les soucis, 
mais cela ne fonctionne pas avec un SELECT *.
 
Quelqu'un aurait-il une id�e g�niale ? 
Comment puis-je �viter de r��crire mon application quasiment de fond en comble ? 
  
  
  
  
S�bastien Libert 
SOGID. 
  

Répondre à