Buenas tardes, les platico mi situación, cuento con una base de datos sobre SQL Server 2008 en la cual las sentencias select se realizan a través de procedimientos almacenados el problema es como puedo realizar una consulta desde PHP haciendo uso de ADO de tal forma que pueda obtener los datos de la tabla que llama el procedimiento almacenado y a su vez los datos de los parámetros de salida.
Lo que tengo hasta ahora es lo siguiente:
Código PHP:
<?php
$dbserver = 'DOITI21';
$dbuname = 'ss';
$dbpass = 'ss2016';
$dbname = 'Prueba';
include('adodb5/adodb.inc.php');
// tipo de conexion mssqlnative or mssql
$dri= 'mssqlnative';
$db = ADONewConnection($dri);
if(!$db->Connect($dbserver,$dbuname,$dbpass,$dbname) )
echo "Error al conectar con el servidor";
else
{
echo "Conectado</br>";
$ulogins = 'ss';
$acc = 'all';
$msj = 3;
$salida = 0;
$msjs = (string) $msj;
// si la conexion es en windows
if ($dri == 'mssqlnative')
{
$stmt = "{call pa_ususarios(?,?)}";
$datos=array(
array($ulogins),
array($acc)
);
$rs = $db->Execute( $stmt ,$datos);
}
// si la conexion es Debian
elseif ($dri == 'mssql'){
$stmt = "pa_ususarios '".$ulogins."',".$acc."'";
$rs = $db->Execute( $stmt );
}
if($rs)
{
foreach ($rs as $row )
echo $row[0]." - ".$row[1]."</br>";
$rs->close();
}
else
die('Error');
}
?>
En el código anterior solo obtengo los valores de una de las dos tablas, mas no se como puedo obtener los demás valores.
Este es mi procedimiento almacenado:
Código SQL:
Ver originalCREATE PROCEDURE [dbo].[pa_ususarios]
@USER VARCHAR(50) = NULL,
@acc VARCHAR(3) = NULL,
@salida VARCHAR(3) = NULL OUTPUT ,
@salidaInt INT = NULL OUTPUT
AS
BEGIN
IF @acc IS NULL
BEGIN
SET @acc = 'all'
END
SET @salida = 'ninguna'
SET @salidaInt = 7
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF @acc = 'get'
BEGIN
SELECT * FROM usuarios WHERE ulogin LIKE '%'+@USER+'%'
SET @salida = 'GET'
END
IF @acc = 'all'
BEGIN
SELECT * FROM usuarios
SELECT * FROM personas
SET @salida = 'ALL'
END
SET @salidaInt = 154
END
Si me pudieran ayudar se los agradecería mucho, de antemano muchas gracias.