J'ai un proc stockée simple -PHP/sqlsrv_query ressource id est 3, mais ne renvoie pas de données
CREATE PROCEDURE [dbo].[usp_ws_s_GetCargoClearanceApproval_t]
@BOLID INT,
@ACCOUNTID INT,
@TOTALAMOUNT FLOAT OUT,
@STORAGEDAYS INT OUT,
@ACCOUNTCREDIT FLOAT OUT,
@CREDITLIMIT FLOAT OUT
AS
BEGIN
--SET NOCOUNT ON
SET @TOTALAMOUNT= '25.00'; SET @STORAGEDAYS = 5; SET @ACCOUNTCREDIT =2500.00; SET @CREDITLIMIT=75000.00 ;
SELECT @TOTALAMOUNT,@STORAGEDAYS,@ACCOUNTCREDIT,@CREDITLIMIT;
END
Ceci est appelé par un fichier php et le code est -
<?php
$bol_id = 426863;
$account_id = 26293;
$totalamount = 0.00;
$storagedays = 0;
$accountcredit = 0.00;
$creditlimit = 0.00;
$param1 = array($bol_id, SQLSRV_PARAM_IN);
$param2 = array($account_id, SQLSRV_PARAM_IN);
$param3 = array($totalamount, SQLSRV_PARAM_OUT);
$param4 = array($storagedays, SQLSRV_PARAM_OUT);
$param5 = array($accountcredit, SQLSRV_PARAM_OUT);
$param6 = array($creditlimit, SQLSRV_PARAM_INOUT);
$params = array($param1, $param2, $param3, $param4, $param5, $param6);
$tsql = "{call usp_ws_s_GetCargoClearanceApproval_t(?,?,?,?,?,?)}";
$Account_Transaction_List = array();
$connectionInfo = array( "Database"=>'**', "UID"=>'**', "PWD"=>'***');
$conn = sqlsrv_connect("**", $connectionInfo);
if($conn === false) {
echo "Couldn't connect to SQL Server on $this->servername.<br />";
die(print_r(sqlsrv_errors(), true));
} else {
echo "Connected!";
}
echo '<br/>';
$result = sqlsrv_query($conn, $tsql, $params);
echo "<pre/> $result - ";print_r($result);
echo '<br/>';
if ($result !== NULL) {
$rows = sqlsrv_has_rows($result);
if ($rows === true)
echo "\nthere are rows\n";
else
echo "\nno rows\n";
}
while($row = sqlsrv_fetch_array($result))
{
echo 'IN <br/>';
}
?>
Renvoie:
Connecté!
Resource id # 3 - Resource id # 3
aucune ligne
Peu importe ce que j'essaie je ne reçois pas de données. J'ai essayé de passer les params par ref, en réglant les options du curseur sur la connexion et d'autres permutations pour les deux derniers jours, pas de chance.
Quelqu'un a-t-il rencontré ce problème? Tout pointeur sera apprécié.
Merci
Avez-vous essayé de tester la procédure stockée par elle-même? – TinkerTenorSoftwareGuy
'L'ID de ressource # 3 'signifie simplement que la requête a réussi, cela ne signifie pas qu'il retournera des lignes. Donc certainement essayer la procédure de son propre chef et partir de là. – aynber
Merci d'avoir regardé les gars. le sp renvoie des valeurs lorsqu'il est exécuté sur sql server management studio. Comme vous pouvez le voir le sp lui-même est très simple. –