[MySQL / PL/SQL] Selection passée en paramètre

Selection passée en paramètre [MySQL / PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 16-11-2010 à 09:33:24    

Bonjour,
 
je viens vers vous pour un petit coup de main, je travaille actuellement sur un projet (scolaire, rien à cacher, c'est un PTI de BTS IG), et je souhaiterai créer ma requète dynamiquement.
 
Pour faire simple, en fonction des TextBox remplis, je génère une chaine de caractère que je souhaiterai passer en argument d'une procédure stockée dont voici le code:

Code :
  1. CREATE PROCEDURE `view_selected_subscribers`(param varchar(1024))
  2. BEGIN
  3. SELECT matricule AS 'Matricule', nom AS 'Nom', prenom AS 'Prenom', adresse AS 'Adresse', codePostal AS "Code Postal", ville AS 'Ville', dateNaissance AS "Date de Naissance", idCategorie AS 'CSP', telephone AS 'Telephone', mail AS "E-mail", dateAdhesion AS "Date d'Adhesion", admin AS "Est Admin?" FROM abonnes WHERE param;
  4. END $$


 
Le problème c'est que je n'arrive pas à trouver le format de passage de cet argument "param", lorsque j'exécute ma requète à la main de la facon suivante:

Code :
  1. SELECT matricule AS 'Matricule', nom AS 'Nom', prenom AS 'Prenom', adresse AS 'Adresse', codePostal AS "Code Postal", ville AS 'Ville', dateNaissance AS "Date de Naissance", idCategorie AS 'CSP', telephone AS 'Telephone', mail AS "E-mail", dateAdhesion AS "Date d'Adhesion", admin AS "Est Admin?" FROM abonnes WHERE abonnes.matricule = 1;


J'ai bien un retour.
Par contre lorsque je fais

Code :
  1. CALL view_selected_subscribers(abonnes.matricule = 1);


C'est une erreur 1109 qui m'attends. J'ai pensé que vu que j'envoie un varchar en paramètre, je devais l'entourer de simple, voir de de double quote, mais dans ce cas, exit l’Erreur, mais aucun enregistrement ne m'est retourné...
 
Si vous aviez une petite piste, je vous en remercie  :jap:  

Reply

Marsh Posté le 16-11-2010 à 09:33:24   

Reply

Sujets relatifs:

Leave a Replay

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