Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2016, 13:33
tavo_zir
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
ADO con PHP y SQL Server Procedimientos Almacenados

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 original
  1. CREATE PROCEDURE [dbo].[pa_ususarios]
  2.     @USER VARCHAR(50) = NULL,
  3.     @acc VARCHAR(3) = NULL,
  4.     @salida VARCHAR(3) = NULL OUTPUT ,
  5.     @salidaInt INT = NULL OUTPUT
  6. AS
  7. BEGIN
  8.     IF @acc IS NULL
  9.     BEGIN
  10.         SET @acc = 'all'
  11.     END
  12.    
  13.     SET @salida = 'ninguna'
  14.     SET @salidaInt = 7
  15.     -- SET NOCOUNT ON added to prevent extra result sets from
  16.     -- interfering with SELECT statements.
  17.     SET NOCOUNT ON;
  18.  
  19.     IF @acc = 'get'
  20.     BEGIN
  21.         SELECT * FROM usuarios WHERE ulogin LIKE '%'+@USER+'%'
  22.         SET @salida = 'GET'
  23.     END
  24.     IF @acc = 'all'
  25.     BEGIN
  26.         SELECT * FROM usuarios
  27.         SELECT * FROM personas
  28.         SET @salida = 'ALL'
  29.     END
  30.         SET @salidaInt = 154
  31. END
Si me pudieran ayudar se los agradecería mucho, de antemano muchas gracias.