fileconn=$connection; require(dirname(__FILE__)."/../db/".$this->fileconn.'.php'); $this->depurar=$depurar_DBServer; $this->tipodb=$tipo_DBServer; $this->conexion= new Conexion($connection, $ispermanent); } public function getTipoDB() { return $this->tipodb; } /** * Funcion execute Query * * Metodo que ejecuta una consulta y la guarda en el atributo $consulta * * @param string $sqlconsulta * @return array() Resultados de la query. */ public function executeQuery($sqlconsulta) { if (strpos(strtoupper($sqlconsulta),"ROWID") > -1){ //Replace para cuando se pide un * que espera se devuelva tambin ROWID //No se aplica en todas las consultas, y por eso la condicin. if ( !(strpos(strtoupper($sqlconsulta),"COUNT(ROWID)") > -1) && !(strpos(strtoupper($sqlconsulta),"ROWID AS PKRECORDID") > -1) ) { //echo "1- ".$sqlconsulta."
"; $sqlconsulta = preg_replace("/select([^\*]+)\*\s+from/i","SELECT *, ROWID FROM",$sqlconsulta); //echo "2- ".$sqlconsulta."
"; } //Replace agregado por Gustavo para Oracle //ROWID se convierte a char require(dirname(__FILE__)."/../config/config.php"); if((isset($_SESSION[$claveSession]["tipo_DBServer"])) && ($_SESSION[$claveSession]["tipo_DBServer"] =='Oracle')) { $sqlconsulta = str_replace('ROWID','rowidtochar(ROWID)',$sqlconsulta); //echo "3- ".$sqlconsulta."
"; //Anexo: el replace reemplaza en SELECT y en WHERE. //En SELECT es necesario agregarle alias al campo. //Eso es para que luego los formularios encuentren al //campo en el array asociativo. $sqlconsulta = preg_replace("/select(.+)rowidtochar\(ROWID\)(.*)from/i","SELECT\\1rowidtochar(ROWID) as ROWID\\2FROM",$sqlconsulta); //echo "4- ".$sqlconsulta."
"; } } if($this->depurar=="1") { echo "Conexion: "; print_r($this->conexion); echo "
Consulta SQL: ".$sqlconsulta."
"; } switch($this->tipodb) { case "Mysql": $this->consulta= mysql_query($sqlconsulta,$this->conexion->getConexion()) or $this->throw_ex(mysql_error()); $this->datos = array(); if (($this->consulta !== true ) && ($this->consulta !== false)) while ($this->datos[] = mysql_fetch_assoc($this->consulta)) {} $aux = array(); for($i=0;$idatos)-1;$i++) $aux[$i]=$this->datos[$i]; $this->datos=$aux; $this->registros = 0; if (($this->consulta !== true ) && ($this->consulta !== false)) $this->registros = mysql_num_rows($this->consulta); break; case "Postgress": $this->consulta= pg_query($this->conexion->getConexion(),$sqlconsulta) or die('La consulta fallo: ' . pg_last_error()); $this->datos=pg_fetch_all($this->consulta); $this->registros = pg_num_rows($this->consulta); break; case "MsSQL": $this->consulta = mssql_query($sqlconsulta, $this->conexion->getConexion()); if (($this->consulta !== true ) && ($this->consulta !== false)) while ($this->datos[] = mssql_fetch_assoc($this->consulta)) {} $aux = array(); for($i = 0; $i < count($this->datos) - 1; $i++) $aux[$i] = $this->datos[$i]; $this->datos = $aux; $this->registros = 0; if(($this->consulta !== true) && ($this->consulta !== false)) $this->registros = mssql_num_rows($this->consulta); break; case "Oracle": $this->consulta=oci_parse($this->conexion->getConexion(),$sqlconsulta); if($this->consulta != false) { if(oci_execute($this->consulta)) { if(oci_fetch_all($this->consulta, $this->datos, 0, -1, OCI_FETCHSTATEMENT_BY_ROW + OCI_ASSOC) == false) { $e=oci_error($this->consulta); } } else { $e=oci_error($this->consulta); trigger_error(htmlentities($e['message'],ENT_QUOTES), E_USER_ERROR); } } else { $e=oci_error($this->consulta); trigger_error(htmlentities($e['message'],ENT_QUOTES), E_USER_ERROR); } $this->registros = oci_num_rows($this->consulta); break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } if(count($this->datos)>0 && $this->datos !== false) { $indice=0; foreach($this->datos as $dato) { $this->resultados[$indice]=array_change_key_case($dato); $indice++; } } if($this->depurar=="1") { echo "Registros: ".$this->registros."
"; echo "Consulta Res: "; print_r($this->consulta); echo "
Datos: "; print_r($this->datos); echo "
Resultados"; print_r($this->resultados); } return $this->resultados; } public function getConsulta() // retorna la consulta en forma de result. { return $this->consulta; } public function getData() // retorna la consulta en forma de result. { return $this->datos; } public function getResult() // retorna la consulta en forma de result. { return $this->resultados; } public function Close() // cierra la conexion { $this->conexion->Close(); } public function clean() // libera la consulta { switch($this->tipodb)//($tipo_DBServer) { case "Mysql": mysql_free_result($this->consulta); break; case "Postgress": pg_free_result($this->consulta); break; case "Oracle": oci_free_statement($this->consulta); break; case "MsSQL": mssql_free_result($this->consulta); break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } $this->registros = 0; $this->consulta = ""; $this->datos = array(); $this->resultados = array(); } public function getRegistros() // debuelve la cantidad de registros encontrados { return $this->registros; } public function getAffect() // devuelve las cantidad de filas afectadas { $return = ''; switch($this->tipodb)//($tipo_DBServer) { case "Mysql": $return = mysql_affected_rows($this->conexion->getConexion()); break; case "Postgress": $return = pg_affected_rows($this->consulta); break; case "Oracle": $return = oci_num_rows($this->consulta); break; case "MsSQL": $return = mssql_num_rows($this->conexion->getConexion()); break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } return $return; } public function getInsertId() // devuelve id ingresado { switch($this->tipodb)//($tipo_DBServer) { case "Mysql": return mysql_insert_id($this->conexion->getConexion()) ; break; case "Postgress": $return = pg_last_oid($this->consulta); break; case "Oracle": $return = oci_num_rows($this->consulta); break; case "MsSQL": $return = mssql_num_rows($this->consulta); break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } } public function selectLimit($strQuery, $offset, $limit) { $argpreLimit = ""; $argLimit = ""; switch($this->tipodb) { case "Mysql": if($limit != -1 && $offset != -1) { $argLimit = ' LIMIT '.$limit.','.$offset; } break; case "Postgress": if($limit != -1 && $offset != -1) { $argLimit = ' LIMIT '.$offset.' OFFSET '.$limit.' '; } break; case "Oracle": if($limit != -1 && $offset != -1) { $limit = $offset+$limit; $argpreLimit = ' SELECT * FROM ( '; $argLimit = ' ) WHERE ROWNUM>'.$offset.' AND ROWNUM<'.$limit.' '; } break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } return $argpreLimit.$strQuery.$argLimit; } public function getLimit($inicio, $fin = 0) { $return = ''; switch($this->tipodb) { case "Mysql": if ($fin > 0){ $return = " limit $inicio, $fin"; } else { $return = " limit $inicio"; } break; case "Postgress": if ($fin > 0){ $return = " ROWID >= $inicio and ROWID <= $fin"; } else { $return = " ROWID <= $inicio"; } break; case "Oracle": if ($fin > 0){ $return = " ROWNUM >= $inicio and ROWNUM <= $fin"; } else { $return = " ROWNUM <= $inicio"; } break; default: trigger_error(htmlentities('Error archivo de configuracion base de datos',ENT_QUOTES), E_USER_ERROR); } return $return; } } ?> Ministerio del Interior, Obras Públicas y Vivienda

Domingo, 11 de Mayo del 2025

EN EL PAÍS

EN EL EXTERIOR

Donde lo tramito
si resido en el extranjero.