Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/03/2011, 09:01
agrandez
 
Fecha de Ingreso: febrero-2011
Ubicación: Lima
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: mssql_execute me bota error

Cita:
Iniciado por ;
Con que funcion haces la conexion a SQL ??

Saludos
Hola! Gracias por responder, el proyecto ya estaba empezado y se utiliza una clase Conexión.. la función conectar se compone de la siguiente manera (si es que a esta parte te refieres exactamente):

$this->link=mssql_connect($this->servidor, $this->usuario, $this->password);
$booleano = mssql_select_db($this->base_datos);

igual incluyo el código a continuación, como un poco de contexto

Código PHP:
//AQUI SE LLAMA AL EJECUTAR PROCEDURE EN PAGINA1.PHP

$link Conexion::getInstance();
$gestorProceso = new GestorProceso($link);
$gestorProceso->executeSP($pCodigo);    

//GESTORPROCESOS.PHP
class GestorProceso
{   
    
// ATRIBUTO PARA LA CONEXION
    
private $link;
    
    
// FUNCION PARA EJECUTAR EL STORED PROCEDURE (SP)
    
public function executeSP($pCodigo){
            
        
// conseguimos el nombre del stored procedure
            
$queryString="SELECT sp FROM sp_x_Proceso
            where codigo='$pCodigo'"
;
            
            
$result $this->link->ejecutar($queryString);
            if(!
$result) {              
                die(
'MSSQL error: ' mssql_get_last_message());}
            
            
$numFilas$this->link->obt_numFilas($result);    
            if(
$numFilas == 1){ 
                        
                
$row=$this->link->obtener_fila($result,0);
                
$nombreSP $row["sp"];
                
$this->link->limpiaRS();

                
$sp $this->link->iniciaSP($nombreSP);
                echo 
"Hora Inicio SP: ".date('h:i:s')."<br>";
                                        
                
$result2 $this->link->ejecutaSP($sp);
// aqui es donde cae en el error.. mas abajo en la clase Conexion esta definido "ejecutaSP"
                
if(!$result2)
                    {    
                        echo 
'error sp MSQL error: 'mssql_get_last_message() . "<br/>";        
                        echo 
"        Hora de corte: ".date('h:i:s') . "<br>";
                    }
                else { 
                        echo 
"SP corrio exitosamente ";
                        echo 
"        Hora final: ".date('h:i:s') . "<br>";
                }
            }
                        
            
$this->link->limpiaRS();
        }
        
}

//CONEXION.PHP
class Conexion
{
    
    public static function 
getInstance(){
        if (!(
self::$_instance instanceof self)){
            
self::$_instance=new self();
        }
        return 
self::$_instance;
    }
    
    private function 
__construct(){
        
$this->conectar();
    }

    private function 
conectar(){
        
$this->link=mssql_connect($this->servidor$this->usuario$this->password);
        
$booleano mssql_select_db($this->base_datos);
    }
    
    public function 
ejecutar($sql){       
        
$this->stmt=mssql_query($sql,$this->link);       
        return 
$this->stmt;    
    }   
        
    public function 
iniciaSP($nombreSP){
        
$this->sp mssql_init($nombreSP,$this->link); 
        return 
$this->sp;
    }
        
    public function 
ejecutaSP($sp){
        
$this->sp $sp;
        
set_time_limit(0);
        
$this->stmt mssql_execute($this->sp); 
        return     
$this->stmt;
    }



gracias por tratar de ayudar, si no dejo algo claro avisenme porfavor. he estado buscando y sigo sin dar con la forma correcta acerca de ejecutar SP de larga duración.

Saludos