Avec Delphi 2007, pour un appel à procédure stockée sous MySQL 5, je lie les composants suivants :
SQLConnection1: TSQLConnection; --> MySQL ODBC Driver
SQLStoredProc1: TSQLStoredProc;
DataSetProvider1: TDataSetProvider;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;

Voici la procédure stockée appelée :
CREATE DEFINER=`root`@`localhost` PROCEDURE `TCPCONNECTION`
(
INOUT Par_DATATYPE VARCHAR(30)
)
BEGIN
Select Par_DATATYPE from Dual;
END

Lors de l'activation du ClientDataSet1, l'erreur suivante s'affiche :
SQLStoredProc1: Curseur non renvoyé par Quey.

Si je remplace INOUT par IN, pas d'erreur et le résultat du Select se retrouve bien dans le DBGrid1.

Seulement j'ai besoin de déclarer des paramètres en entrée et en sortie !
A remarquer qu'avec Oracle , cela fonctionne!

Après plusieurs heures de recherche, j'ai peut être trouvé un élément de réponse qui exploite le multi-query avec PHP
http://www.paragon-cs.com/mag/issue3.pdf

CREATE procedure t(IN i, OUT j)
BEGIN
SELECT 'OK' FROM dual;
SET j = 1;
END;

$mysqli->multi_query( "CALL t(1,@myvar); SELECT @myvar" );
then the above code produces this result:

Result #1:
OK
Result #2:
1

Mais comment fait-on la même chose sous Delphi 2007 ? Quel composant utiliser pour faire du multi query ?

Merci pour toutes réponses