Requete et java

fredmorvant29 Messages postés 42 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 23 juillet 2004 - 3 juin 2004 à 18:09
Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004 - 4 juin 2004 à 08:51
bonjour,
je souhaite effectuer une requete sur la base et ramener les infos sous forme xml.
ma requete simple passe bien mais lorsque je rajoute "for xml auto" il me met une erreur : "SQL Exception: Ligne 1 : Syntaxe incorrecte vers 'xml'."

y a t il un jar particulier a utiliser?
voici mon code :
/*connection à la base SQL Server 7*/
try
{
/*Chargement du Driver*/
Driver leDriver = (Driver) Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
/*Etablissement de la connection. Prise en compte des paramètres utilisateurs : 
  base, nom, mot de passe*/
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://ODN001:1433;databaseName=Northwind;user=toto;password=toto");
writer.println("apres connection");

/*création et éxécution d'une requete*/
Statement stmt = conn.createStatement();
stmt.execute("select c.CategoryID as CatID, c.CategoryName as CatName, p.ProductID as ProID, p.ProductName as ProName from Categories c inner join Products p on p.CategoryID=c.CategoryID order by CategoryName for xml auto");
ResultSet rs = stmt.getResultSet();
while (rs.next())
{
int catID =rs.getInt("CatID");
String catName=rs.getString("CatName");
int proID =rs.getInt("ProID");
String proName=rs.getString("ProName");
writer.println("catID : "+catID+" catName : "+catName+" proID : "+proID+" proName : "+proName);
}
/*fermeture du RecordSet, de la requete et de la connexion*/
rs.close();
stmt.close();
conn.close();
}
catch (ClassNotFoundException cnfe)
{
writer.println("Impossible de charger la classe du Driver : " + cnfe.getMessage());
cnfe.printStackTrace(writer);
return;
}
catch (SQLException se) 
{
writer.println("SQL Exception: " + se.getMessage());
  	se.printStackTrace(writer);
}
catch (Exception e)
{
writer.println(e.getMessage());
  	e.printStackTrace(writer);
}


merci de votre aide, c urgent

2 réponses

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
4 juin 2004 à 08:50
Bonjour,

j'ai trouvé un lien qui explique cette fonction pour SQL Server : for xml auto

et d'après ce que j'ai lu, il faut indiquer à la suite de "for xml auto" ELMENTS, du coup, que ta requete soit :

select c.CategoryID as CatID, c.CategoryName as CatName, p.ProductID as ProID, p.ProductName as ProName from Categories c inner join Products p on p.CategoryID=c.CategoryID order by CategoryName for xml auto, elements

Voilà, en espérant que c'est ça
0
Frouf85 Messages postés 106 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 7 octobre 2004
4 juin 2004 à 08:51
Je ne peux pas t'aider mais regarde dans les sources du site, je me rappelle avoir vu un exemple assez similaire.
Frouf
0
Rejoignez-nous
A voir également