Vous n'êtes pas identifié.
Bonjour,
j'ai mis en place un serveur Linux / PHP5 avec Freetds pour accéder à MsSql2000.
Tout fonctionne correctement mis a part un petit point :
J'utilise en PHP les fonctions mssql_xxxxxxx
Script PHP :
$proc_add=mssql_init("dbo.P_VIA_ADD_GROUP",$conn);
mssql_bind($proc_add,"RETVAL",&$RETVAL,SQLINT4);
mssql_bind($proc_add,"@label",&$_POST["label"],SQLVARCHAR,FALSE,FALSE,60);
mssql_bind($proc_add,"@qMaxSize",&$_POST["qMaxSize"],SQLINT4);
mssql_bind($proc_add,"@qMaxDuration",&$_POST["qMaxDuration"],SQLINT4);
mssql_bind($proc_add,"@wrapUp",&$_POST["wrapUp"],SQLINT4);
mssql_bind($proc_add,"@overflowId",&$_POST["overflowId"],SQLINT4);
mssql_bind($proc_add,"@ratio",&$_POST["ratio"],SQLINT4);
mssql_bind($proc_add,"@primary",&$primary,SQLVARCHAR,FALSE,FALSE,1);
$result=mssql_execute($proc_add);
mssql_free_statement($proc_add);
Tous les binds ci dessus se passent bien mis a part le RETVAL qui occasionen l'erreur suivante :
Warning: mssql_execute() [function.mssql-execute]: stored procedure has no return value. Nothing was returned into RETVAL in .....
Je précise évidemment que la procedure stockée contient un RETURN value à la fin ....
Cette façon de faire fonctionne sur la machine d'un collègue, je pense donc qu'ils s'agit d'un parametre de config de Freetds et/ou unixodbc et/ou php mais je ne vois pas la différence de config entre lui et moi.
Si quelqu'un a une idée .......
Dernière modification par fclement (28 Sep 2007 08:42:39)
Hors ligne
Salut,
Mon idée serait de vérifier la valeur de retour de ta procédure stockée P_VIA_ADD_GROUP. Est-ce que ta table intérogée par P_VIA_ADD_GROUP contient déjà des valeurs? As-tu testé ta procédure stocké dans sql entreprise manager?
A+.
Hors ligne
La procédure stockée fonctionne bien et j'ai finalement trouvé la raison du disfonctionnement : ce type de syntaxe ne fonctionne pas avec la version 0.64 de freetds, j'ai rétrogradé en 0.63 et je n'ai plus de problèmes
Hors ligne
A ta place je jetterais un oeil dans les changelog du projet pour savoir pourquoi (peut être une régression?).. un jour ou l'autre tu devras sûrement mettre à jour et tu te reposeras la même question..
Hors ligne