IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer en php la valeur retournée par une procédure stockée via odbc sql anywhere12 [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Récupérer en php la valeur retournée par une procédure stockée via odbc sql anywhere12
    Bonjour,
    Je m'intéresse depuis peu au php et je n'arrive pas à trouver de solution pour récupérer les valeurs en retour d'une procédure stockée via l'odbc.
    Ma connexion odbc fonctionne. J'arrive à lire le contenu d'une table sur sql anywhere.
    Voici le code utilisé avec la description de la procédure.
    J'ai noté les valeurs renvoyées aux différentes étapes.
    Merci déjà pour le temps que vous pourrez consacrer à m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    <html>
     <head>
      <title>Connexion Gest</title>
     </head>
     <body>
     <?php
    	//
    	//***************
    	//Connexion ODBC
    	//***************
    	$connexion = "*****";
    	$user = "******";
    	$passw = "*****";
    	$cx = odbc_connect($connexion,$user,$passw) or die ("Erreur de connexion ! ".odbc_error());
    	echo "Connexion a la base = "; // me renvoie Connexion a la base = resource(2) of type (odbc link)
    	var_dump($cx);
    	echo "<pre>";	 
    	echo "</pre>";
    	echo "<pre>";	 
    	echo "</pre>";
    	//
    	//************************************************************************* 
    	/* Description de la fonction "SP_GET_SALPRICE"
    	//*************************************************************************
    	01 IN as_cust varchar(10)
    	02 IN as_item varchar(12)
    	03 IN as_curr char(3)
    	04 IN adec_currconv numeric(10,6)
    	05 IN adt_datereq timestamp
    	06 IN as_directsal char(1)
    	07 IN adec_qty numeric(10,3)
    	08 IN Session_name varchar(30)
    	//
    	01 OUT PriceTyp CHAR(1)
    	02 OUT rate numeric(5,0)
    	03 OUT PriceOrigin char(1)
    	04 OUT baseprice numeric(10,4)
    	05 OUT ratedisc numeric(5,2)
    	06 OUT originprice_withoutlogistique numeric(10,4)
    	07 OUT OriginPrice numeric(10,4)
    	08 OUT RealPrice numeric(10,4)
    	09 OUT DirectSalRate char(1)
    	10 OUT pcdisc numeric(20,10)
    	11 OUT qtydisc numeric(20,10)
    	12 OUT logistpcdisc numeric(10,4)) */
    	//
    	//*********************************************
    	//appel à la procédure stockée sp_get_salprice
    	//*********************************************
    	//Paramètres IN
    	//
    	$as_cust = "'V00754'";
    	$as_item = "'77082'";
    	$as_curr = "'EUR'";
    	$adec_currconv = 1;
    	$adt_datereq = "'2014/09/30'";
    	$as_directsal= "'Y'";
    	$adec_qty = 1;
    	$Session_name = $user;
    	//
    	//Paramètres OUT
    	//
    	$P1 = "@PriceTyp CHAR(1)";
    	$P2 = "@rate numeric(5,0)";
    	$P3 = "@PriceOrigin char(1)";
    	$P4 = "@baseprice numeric(10,4)";
    	$P5 = "@ratedisc numeric(5,2)";
    	$P6 = "@originprice_withoutlogistique numeric(10,4)";
    	$P7 = "@OriginPrice numeric(10,4)";
    	$P8 = "@RealPrice numeric(10,4)";
    	$P9 = "@DirectSalRate char(1)";
    	$P10 = "@pcdisc numeric(20,10)";
    	$P11 = "@qtydisc numeric(20,10)";
    	$P12 = "@logistpcdisc numeric(10,4)";
    	//
    	//Requête
    	//
    	$execsql = "declare $P1,$P2,$P3,$P4,$P5,$P6,$P7,$P8,$P9,$P10,$P11,$P12; exec dba.sp_get_salprice $as_cust, $as_item, $as_curr, $adec_currconv, $adt_datereq, $as_directsal, $adec_qty, $Session_name,@PriceTyp,@Rate, P@riceOrigin, @BasePrice, @RateDIsc, @OriginPrice_WithoutLogistique, @OriginPrice, @RealPrice, @DirectSalRate, @PcDisc output; select @PriceTyp,@Rate, @PriceOrigin, @BasePrice, @RateDIsc, @OriginPrice_WithoutLogistique, @OriginPrice, @RealPrice, @DirectSalRate, @PcDisc";
    	//
    	$sql = $execsql;
    	 echo "Requete Sql = ";
    	 echo "$sql\n";
     
     	try  
    	{
    	//
    	//Préparation
    	//
         $stmt = odbc_prepare($cx,$sql)or die (odbc_error());
    	 echo "Resultats preparation = "; // me renvoie Resultats preparation = resource(3) of type (odbc result)
    	 var_dump($stmt);	
    	 //
         //Exécution
    	 //
    	 $res = odbc_execute($stmt) or die (odbc_error());
    	 echo "\n Resultat execute = "; //me renvoie Resultat execute = bool(true) 1
    	 var_dump($res);
     
     
    	 //
    	 //Lecture des résultats
    	 //
    	$result = odbc_result_all($res);
    		 echo "Valeur de retour = "; //me renvoie Valeur de retour = NULL
    	 print_r($result);
     
        }
        catch (PDOException $e) 
        {
          $p_retour= $e->getMessage();
    	  echo 'catch';
         }
     
    	// disconnect from database
    	odbc_close($sql);
    	odbc_close($cx);
     
     ?>
     </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'après la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    odbc_result_all($stmt);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Il faut savoir "lire" la doc!
    Un tout grand merçi à Sabotage!
    Cela fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une valeur retournée par une url
    Par Math77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2011, 09h14
  2. Réponses: 1
    Dernier message: 13/04/2010, 11h00
  3. Réponses: 1
    Dernier message: 08/09/2009, 15h40
  4. [JMeter] Récupérer une valeur renvoyée par une procédure stockée
    Par goldest dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 21/01/2009, 12h41
  5. Problème de résultat retourné par une procédure stockée
    Par Access Newbie dans le forum Access
    Réponses: 23
    Dernier message: 17/08/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo