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