Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/07/2008, 11:04
leo_25
 
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 109
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: recuperar datos de mssql

Bueno Describo la calse que tengo hasta ahora y bueno puede reusarse y aclaro que todavia aun le falta mucho por hacer. tengo la clase Conexion dentro del script clsConexionMssql.php aqui aun le falta la parte para recibir los datos y armar el query para ejecutar procediminetos almacenados.
Código PHP:
class Conexion 
{    public $servidor;
    public 
$usuario;
    public 
$pass;
    public 
$DB;
    public 
$dbCN;
    public 
$conn;
    public 
$rta;
    public 
$select_db;
    public  
$pagRed;
    public 
$query;
    public 
$result;
    public 
$param=array();
    function 
__construct()
    {
        
$this->servidor="localhost";
        
$this->DB="pubs";
               
$this->usuario="tuusuario";
               
$this->pass="tupassword";
    }
    function 
Conecta()
    {
        
$this->usuario=$usuario;
        
$this->pass=$password;
        
$this->dbCN mssql_connect($this->servidor,$this->usuario,$this->pass);
        if(
$this->dbCN)
        {
            
$this->select_db=self::selectBD($this->DB,$this->dbCN);
            if(
$this->select_db)
            {
                return 
$this->dbCN;
            }
        }
        else 
        {  
            return 
false;
             
        }
                
    }
    function 
selectBD($db,$conn)
    {   
$this->conn=$conn;
        
$this->select_db mssql_select_db($this->DB,$this->conn);
        if(
$this->select_db)
        {
         return  
$this->select_db;
        }
        else 
        {
            return 
false;
        }
        
    }
    
    function 
cerrarBD($conn)
    {
        
/*implementada en al clase hija*/
    
}
    
    
        


Luego la clase AdminDatos dentro del script clsAdminDatos.php que hereda de la clase Conexion:
Código PHP:
include_once("clsConexionMssql.php");
class 
AdminDatos extends Conexion
{   public $rs;
    public 
$num_Rows;
    public 
$regent_condb;
    public 
$rsQuery;
    function 
__construct()
    {         
        
parent::__construct();
    }
function 
conectar()
{   
$this->regent_condb =parent::Conecta();
    return 
$this->regent_condb;
}

function 
Execute($query)
{   
   
$this->rsQuery=mssql_query($query,$this->regent_condb); 
    if( 
$this->rsQuery)
    {   
        return 
$this->rsQuery;
        
//$this->cerrarBD($this->regent_condb);/*ver si estaria bien aqui o cerrariamos desde afuera*/
    
}    
    else 
    {
        return 
false;
        
//$this->cerrarBD($this->regent_condb);
    
}
    
}


public function 
ExecuteAndGetResult($query){
           
$this->rsQuery=$query;
           
$queryResult $this->Execute($query);
           if(
$queryResult)
           { 
$i=0;
           while (
$row mssql_fetch_array($queryResult)){
               foreach(
$row as $key => $valor) {
                   
$resultArray[$i][$key]=$valor;    
               }
           
$i++;
           }
           return 
$resultArray;
           }
           elseif(
$queryResult==false
           {
               echo 
"Hubo un error al intentar ejecutar el Query: ".$query."<br>Error: ".mssql_get_last_message();
               
           }
       
   }


public function 
numRows($query){
       
$this->rsQuery=$query;
       
$this->num_Rowsmssql_num_rows($this->Execute$this->rsQuery));
       return  
$this->num_Rows
   }
function 
cerrarBD($conn) {
            if (
mssql_close($conn)) {
                return 
true;
               
            }
            else {
                return 
false;
            }
        }


Luego la clase Autor que hereda de Admin que guradara sus propios metodos y atributos.

Código PHP:
include_once("clsAdminDatos.php");
class 
Autor extends  AdminDatos
{
    var 
$nombre;
    



y ahora probar la clase Autor testAutor.php:



Código PHP:
include_once("clsAdminDatos.php");
include_once(
"clsAutor.php");
$autor=new Autor();
$cnn=$autor->conectar();
$query="execute pubs..autor_traer";

$result1=$autor->ExecuteAndGetResult($query);




foreach (
$result1 as $key=>$valor)
{
    echo 
$valor[1]."<br>";
}

echo 
$numeroRows=$autor->numRows($query); 

y este es script del store procedure

Código:
CREATE PROCEDURE autor_traer AS 

	SELECT	*
	FROM	authors
GO

Como les dije aun falta mucho por hace pero en eso ya estamos trabajando Bienvenidas las sugerencias.