2010-02-28 4 views
0

J'ai rencontré un problème lors de l'appel d'une procédure stockée sur mon serveur MySQL à l'aide de l'API C.Problèmes lors de l'appel des procédures stockées MySQL à partir de l'API C

J'utilise mysql_query (& poignée, « CALL MaProcédure ») mais la fonction échoue (renvoie 1) et recherche d'erreur donne le message suivant « Procédure MaProcédure ne peut pas retourner un jeu de résultats dans le contexte donné. » J'ai même essayé d'utiliser mysql_real_query insted, mais pas mieux.

J'ai vu quelques sujets sur ce bug, mais seulement liés à PHP. Donc, il semble y avoir le même problème pour les programmes C aussi. Ce qui est bizarre, c'est que ma procédure stockée n'est même pas censée retourner un jeu de résultats. Cela fonctionne simplement avec des données dans des tables, ne retourne vraiment rien.

Merci pour vos conseils.

Répondre

1

Reportez-vous aux fonctions:
mysql_set_server_option() &
mysql_real_connect()
here.

Plusieurs instructions ne sont activés (temporairement) en utilisant les arguments de MYSQL_OPTION_MULTI_STATEMENTS_ON et _OFF à mysql_set_server_option().

Le problème ici est que CLIENT_MULTI_QUERIES dans mysql_real_connects() permet implicitement CLIENT_MULTI_RESULTS aussi, mais MYSQL_OPTION_MULTI_STATEMENTS_ON permet que de multiples déclarations, pas plusieurs résultats.

Ajoutez donc CLIENT_MULTI_STATEMENTS à la connexion et réessayez.

+0

Eh bien, je n'avais pas de drapeaux dans mon mysql_real_connect, mais quand j'ai ajouté le CLIENT_MULTI_STATEMENTS il a soudainement commencé à fonctionner ... bizarre cependant ... Mais au moins ça marche maintenant ... Merci – NumberFour

0

Avez-vous essayé d'appeler cette procédure depuis le client de ligne de commande 'mysql'?
Etes-vous capable d'appeler (une autre) procédure vide pour tester si le problème est lié à la procédure?

+0

Oui, j'ai essayé, mais cela fonctionne ... Cependant, j'ai déjà résolu le problème en ajoutant l'indicateur CLIENT_MULTI_STATEMENTS dans le mysql_real_connect. mais merci d'avoir répondu quand même – NumberFour

Questions connexes