Procédure stocké avec un ORDER BY paramétrable
Bonjour,
J'utilise la version 5 de MySQL, j'essais de créer une procédure stocker qui me retour la liste des utilisateur classé selon un paramètre :
Code:
1 2 3 4 5 6 7 8 9 10
|
DELIMITER $$
DROP PROCEDURE IF EXISTS `MyWebSite`.`UsersList` $$
CREATE PROCEDURE `UsersList`( IN sorder varchar(250) )
BEGIN
SELECT u_ID, u_AccountName, u_FirstName, u_LastName, u_Email, u_Administrator, u_Disabled
FROM Users
ORDER BY sorder;
END $$
DELIMITER ; |
Je ne sais pas si le type varchar(250) est correct pour ce type d'utilisation, car après le ORDER BY le nom des champs ne doit pas être entre "".
Je sais que ce n'est pas le bon forum mais j'utilise aussi MySqlConnector .Net, voilà comment je procède :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
conn = new MySql.Data.MySqlClient.MySqlConnection("..." );
conn.Open();
comm = new MySql.Data.MySqlClient.MySqlCommand();
comm.Connection = conn;
comm.CommandText = "UsersList";
comm.CommandType = System.Data.CommandType.StoredProcedure;
comm.Parameters.Add("?sorder", "u_FirstName, u_LastName ASC");
comm.Parameters["?sorder"].DbType = System.Data.DbType.Object;
comm.Parameters["?sorder"].Direction = ParameterDirection.Input;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
idr = comm.ExecuteReader(); |
Cela me retourne la liste de mes utilisateurs mais sans L'ORDER que j'ai demandé.
Merci à tous.