source: admin/WebConsole/clases/AdoPhp.php @ b6906f7

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since b6906f7 was b0dc2e4, checked in by alonso <alonso@…>, 16 years ago

git-svn-id: https://opengnsys.es/svn/trunk@489 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 25.8 KB
Line 
1<?php
2/*================================================================================
3Clase para conectar con una base de datos.
4
5Especificaciones:
6        - Estado de la conexión($estado)
7                0: No conectado
8                1: Conectado
9                2: Se est�intentando conectar
10
11================================================================================*/
12
13class Conexion{
14        var $basedatos;                                 // Base de datos
15        var $servidor;                                  // Servidor de Base de datos
16        var $usuario;                                   // Nombre de usuario
17        var $password;                                  // Clave de usuario
18        var $controlador;                               // Controlador
19        var $estado;                                    // Estado de la conexion
20        var $proveedor;                                 // Proveedor de BD
21        var $error;                                             // Colecci� de errores ocurridos durante el proceso (C�igo de error)
22        var $ultimoerror;                               // Ultimo error detectado
23        var $inderror;                                  // Nmero de errores ocurridos durante el proceso
24        var $msgerrores=array(
25                "No se ha producido ningn error",
26                "001 : conexiónError - La conexion no se pudo establecer",
27                "002 : conexiónError - Se estableci� la conexióncon el servidor pero la base de datos no responde",
28                "003 : conexiónError - No se ha podido cerrar la actual conexi�",
29                "004 : conexiónError - El objeto est�ocupado intentando establecer una conexiónanterior",
30                "005 : conexiónError - La conexiónya est�cerrada",
31                "006 : conexiónError - No se ha especificado ningn servidor de base de datos",
32                "007 : conexiónError - No se ha especificado ningn usuario de la base de datos",
33                "008 : conexiónError - No se ha especificado password de usuario",
34                "009 : conexiónError - No se ha especificado ninguna base de datos",
35                "010 : conexiónError - No se ha especificado ningn proveedor de bases de datos",
36        );
37        /*--------------------------------------------------------------------------------------------*/
38        function Conexion(){ // Constructor de la clase
39                $this->inderror=0;
40                $this->ultimoerror=0;
41                $this->estado=0;
42        }
43        /* -------------------------------------------------------------------------------------------
44                Adquiere o actualiza los datos necesarias para establecer conexiones
45               
46                Par�etros de entrada:
47                        servidor: Servidor donde se ubica la base de datos
48                        usuario : Un usuario con acceso al servidor
49                        passwor : Clave de usuario
50                        basedato: Base de datos a la se quiere acceder
51                        proveedor: Proveedor de Base de datos
52
53                Devuelve :
54                        true : Si los datos aportadospara establecer conexiones son correctos
55                        false: En caso contrario
56
57                En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
58        ----------------------------------------------------------------------------------------------*/
59        function CadenaConexion($servidor,$usuario,$password,$basedatos,$proveedor){
60                $this->servidor=$servidor;
61                $this->usuario=$usuario;
62                $this->password=$password;
63                $this->basedatos=$basedatos;
64                $this->proveedor=$proveedor;
65                if (!$this->_cadena_conexion()) return(false); else return(true);
66        }
67        /* -------------------------------------------------------------------------------------------
68                Abre una conexión
69
70                Devuelve :
71                        true : Si la apertura de la conexiónha sido satisfactoria
72                        false: En caso contrario
73
74                En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
75        ----------------------------------------------------------------------------------------------*/
76        function Abrir(){
77                $this->inderror=-1; // Inicializar contador de errores
78                $this->ultimoerror=-1;
79                $MAXIMOS_INTENTOS_DE_CONECCION=10;
80                if (!$this->_cadena_conexion()) return(false); // Comprueba si los datos necesarios para conexiones se han aportado
81                switch ($this->estado) {
82                        case 1: // Existe actualmente una conexiónabierta que se sustituir�por la nueva
83                                if (mysql_close($this->controlador)){ // Se cierra la conexion actual
84                                        $this->estado=0;
85                                        $intentos_de_conexion=0;
86                                        while(true){
87                                                $intentos_de_conexion++;
88                                                $resul=($this->_nueva_conexion());
89                                                if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul);
90                                                sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo
91                                        }
92                                }       
93                                else{ // Error al cerrar la conexi�
94                                        $this->error[$this->inderror++]=3;
95                                        $this->ultimoerror=3;
96                                        return(false);
97                                }
98                                break;
99                        case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi�
100                                $this->error[$this->inderror++]=4;
101                                $this->ultimoerror=4;
102                                return(false);
103                                break;
104                        default : // No existe actualmente ninguna conexiónabierta, se abrir�una nueva
105                                $intentos_de_conexion=0;
106                                while(true){
107                                        $intentos_de_conexion++;
108                                        $resul=($this->_nueva_conexion());
109                                        if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul);
110                                        sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo
111                                }
112                }
113        }
114        /* -------------------------------------------------------------------------------------------
115                Cierra una conexión
116               
117                Devuelve :
118                        true : Si la conexiónse ha cerrado satisfactoriamente
119                        false: En caso contrario
120
121                En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
122        ----------------------------------------------------------------------------------------------*/
123        function Cerrar(){
124                $this->inderror=-1; // Inicializar contador de errores
125                $this->ultimoerror=-1;
126                switch ($this->estado) {
127                        case 1: // Actualmente la conexion est�abierta
128                                if (mysql_close($this->controlador)){ // Se cierra la conexion actual
129                                        $this->estado=0;
130                                        $this->error[$this->inderror++]=0;
131                                        $this->ultimoerror=0;
132                                        return(true);
133                                }
134                                else{ // Error al cerrar la conexi�
135                                        $this->error[$this->inderror++]=3;
136                                        $this->ultimoerror=3;
137                                        return(false);
138                                }
139                                break;
140                        case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi�
141                                $this->error[$this->inderror++]=4;
142                                $this->ultimoerror=4;
143                                return(false);
144                                break;
145
146                        default :       // Actualmente la conexiónest�ya cerrada
147                                $this->error[$this->inderror++]=5;
148                                $this->ultimoerror=5;
149                                return(false);
150                }
151        }
152        /* -------------------------------------------------------------------------------------------
153                Establece una nueva conexi�. Este m�odo es privado y s�o lo puede ejecutar la propia
154                clase desde el m�odo pblico Abrir.
155        ----------------------------------------------------------------------------------------------*/
156        function _nueva_conexion(){
157                $this->estado=2;// Intenta la conexion
158                if ($this->controlador=mysql_connect($this->servidor,$this->usuario,$this->password)){// Conexion O.K.
159                        $this->estado=1; // La conexion con el servidor se estableci�                   
160                        if (mysql_select_db($this->basedatos, $this->controlador)){// Base datos O.K.
161                                $this->error[$this->inderror++]=0;
162                                $this->ultimoerror=0;
163                                return(true);
164                        }
165                        else{ // Problemas con la base de datos
166                                $this->error[$this->inderror++]=2;
167                                $this->ultimoerror=2;
168                                if (mysql_close ($this->controlador)) $this->estado=0; // Se cierra la conexion
169                                return(false);
170                        }
171                }
172                else{ // Problemas con la conexion
173                        $this->estado=0;
174                        $this->error[$this->inderror++]=1;
175                        $this->ultimoerror=1;
176                        return(false);
177                }
178        }
179        /* -------------------------------------------------------------------------------------------
180                Revisa y detecta las condiciones que deben cumplir los datos necesarios para establecer
181                conexiones
182
183                Devuelve :
184                        true : Si los datos aportados son correctos
185                        false: Si algn dato NO ha sido aportado o es incorrecto
186               
187                Este m�odo es privado y s�o lo ejecutan m�odos pblicos de la propia clase
188        ----------------------------------------------------------------------------------------------*/
189        function _cadena_conexion(){
190
191                if ($this->servidor==null){
192                        $this->error[$this->inderror++]=6; // Servidor no establecido
193                        $this->ultimoerror=6;
194                        return(false);
195                }
196                if ($this->usuario==null){
197                        $this->error[$this->inderror++]=7;// usuario no establecido
198                        $this->ultimoerror=7;
199                        return(false);
200                }
201                if ($this->password==null){
202                        $this->error[$this->inderror++]=8; // password no establecido
203                        $this->ultimoerror=8;
204                        return(false);
205                }
206                if ($this->basedatos==null){
207                        $this->error[$this->inderror++]=9; // base de datos no establecido
208                        $this->ultimoerror=9;
209                        return(false);
210                }
211                if ($this->proveedor==null){
212                        $this->error[$this->inderror++]=10; // proveedor no establecido
213                        $this->ultimoerror=10;
214                        return(false);
215                }
216                $this->error[$this->inderror++]=0; // Datos de conexióncorrectos
217                $this->ultimoerror=0;
218                return(true);
219        }
220        /* -------------------------------------------------------------------------------------------
221                Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
222        ----------------------------------------------------------------------------------------------*/
223        function UltimoError(){
224                return($this->ultimoerror);
225        }
226        /* -------------------------------------------------------------------------------------------
227                Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
228        ----------------------------------------------------------------------------------------------*/
229        function DescripUltimoError(){
230                return($this->msgerrores[$this->ultimoerror]);
231        }
232}
233/*=========================================================================================
234        Clase para usarla con la clase comando.
235
236        Especificaciones:
237       
238                Esta clase tiene dos propiedades que definen su contenido
239                        nombre=nombre del parametro
240                        valor = valor de dicho par�etro
241                        tipo = tipo de parametro:
242                                                0: El valor del par�etro debe ir encerrado entre comillas simples
243                                                1: El valor del par�etro no necesita ir entre comillas simples
244========================================================================================*/
245class parametro{
246        var $nombre;
247        var $valor;
248        var $tipo;
249        /*--------------------------------------------------------------------------------------------*/
250        function parametro($nombre="SinNombre",$valor="",$tipo="0"){ // Constructor de la clase
251                $this->SetParametro($nombre,$valor,$tipo);
252        }
253        /* -------------------------------------------------------------------------------------------
254                Modifica los valores de las propiedades de la clase
255        ----------------------------------------------------------------------------------------------*/
256        function SetParametro($nombre,$valor,$tipo){
257                $this->nombre=$nombre;
258                $this->valor=$valor;
259                $this->tipo=$tipo;
260                if($tipo==1 && empty($valor)) $this->valor=0;
261        }
262}
263/*==========================================================================================
264        Clase para manipular bases de datos a traves de una conexiónprevia.
265
266        Especificaciones:
267       
268                Las sentencias SQL pueden contener par�etros que pueden ser sustituidos por el valor
269                de los objetos par�etro. Estos par�etros tendr� la forma:@nombre_del_parametro
270==================================================================================================*/
271class Comando{
272        var $texto;
273        var $Conexion;
274        var $parametros=array();
275        var $Recordset;
276        var $resul;
277        var $error;                                             // Error
278        var $ultimoerror;                               // Ultimo error detectado
279        var $inderror;                                  // Contador de errores
280        var $msgerrores=array(
281                "No se ha producido ningn error",
282                "001 : Comando Error - No se ha establecido el texto del comando",
283                "002 : Comando Error - No se ha establecido la conexióndel comando",
284                "003 : Comando Error - No se ha abierto la conexi�",
285                "004 : Comando Error - La sentencia SQl del comando no es correcta",
286                "005 : Comando Error - No se ha podido recuperar el valor @@identity de la ltima clave insertada",
287        );     
288        /*--------------------------------------------------------------------------------------------*/
289        function Comando(){ // Constructor de la clase
290                $this->inderror=0;
291                $this->ultimoerror=0;
292                $this->Recordset=new Recordset;
293        }
294        /* -------------------------------------------------------------------------------------------
295                Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
296        ----------------------------------------------------------------------------------------------*/
297        function UltimoError(){
298                return($this->ultimoerror);
299        }
300        /* -------------------------------------------------------------------------------------------
301                Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
302        ----------------------------------------------------------------------------------------------*/
303        function DescripUltimoError(){
304                return($this->msgerrores[$this->ultimoerror]);
305        }
306        /* -------------------------------------------------------------------------------------------
307                A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci�
308                es una matriz asociativa cuyo indice asociativo es el nombre del par�etro
309               
310                Par�etros de entrada:
311                        objparam: Un objeto parametro
312        ---------------------------------------------------------------------------------------------*/
313        function AddParametro($objparam){
314                $tbparametro["nombre"]=$objparam->nombre;
315                $tbparametro["valor"]=$objparam->valor;
316                $tbparametro["tipo"]=$objparam->tipo;
317                $this->parametros[]=$tbparametro;
318        }
319        /* -------------------------------------------------------------------------------------------
320                A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci�
321                es una matriz asociativa cuyo indice asociativo es el del par�etro
322               
323                Par�etros de entrada:
324                        nombre: El nombre del par�etro
325                        valor : El valor del par�etro
326                        tipo = tipo de parametro:
327                                                0: El valor del par�etro debe ir encerrado entre comillas simples
328                                                1: El valor del par�etro no necesita ir entre comillas simples
329
330
331        ---------------------------------------------------------------------------------------------*/
332        function CreaParametro($nombre,$valor,$tipo){
333                for($i=0;$i<sizeof($this->parametros);$i++){
334                        if($this->parametros[$i]["nombre"]==$nombre){
335                                $this->parametros[$i]["valor"]=$valor;
336                                return;
337                        }
338                }       
339                $p = new parametro($nombre,$valor,$tipo);
340                $this->AddParametro($p);
341        }
342
343        /* -------------------------------------------------------------------------------------------
344                Sustituye el valor de un par�etro existente por otro
345                Par�etros de entrada:
346                        nombre: El nombre del par�etro
347                        valor : El nuevo valor del par�etro
348        ---------------------------------------------------------------------------------------------*/
349        function ParamSetValor($nombre,$valor){
350                for($i=0;$i<sizeof($this->parametros);$i++){
351                        if($this->parametros[$i]["nombre"]==$nombre)
352                                $this->parametros[$i]["valor"]=$valor;
353                }
354        }
355        /* -------------------------------------------------------------------------------------------
356                Establece la conexiónque se usar�para ejecutar las acciones pertinentes
357
358                Par�etros de entrada:
359                        objconexion: Un objeto conexion
360        ---------------------------------------------------------------------------------------------*/
361        function EstableceConexion($objconexion){
362                $this->Conexion= $objconexion;
363        }
364        /* -------------------------------------------------------------------------------------------
365                Establece la conexiónque se usar�para ejecutar las acciones pertinentes
366
367                Par�etros de entrada:
368                        textocomando: Un texto con la sentencia SQL (Puede contener par�etros)
369        ---------------------------------------------------------------------------------------------*/
370        function EstableceTexto($textocomando){
371                $this->texto=$textocomando;
372        }
373        /* -------------------------------------------------------------------------------------------
374                Sustituye el valor de los parametros en la expresi� que forma el texto del Comando
375        ---------------------------------------------------------------------------------------------*/
376        function Traduce(){
377                $execomando=$this->texto;
378                if (sizeof($this->parametros)>0){ // Hay par�etros que sustituir
379                        foreach($this->parametros as $parametro){
380                                if ($parametro["tipo"]==0) // Tipo alfanum�ico
381                                        $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando);
382                                else
383                                        $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando);
384                        }
385                }
386                $this->texto=$execomando;
387        }
388        /* -------------------------------------------------------------------------------------------
389                Ejecuta la sentencia SQL contenida en la propiedad texto
390        ---------------------------------------------------------------------------------------------*/
391        function Ejecutar(){
392                $this->inderror=-1; // Inicializar contador de errores
393                $this->ultimoerror=-1;
394                if ($this->texto==null){
395                        $this->error[$this->inderror++]=1; // Texto no especificado
396                        $this->ultimoerror=1;
397                        return(false);
398                }
399                else{
400                        if ($this->Conexion==null){
401                                $this->error[$this->inderror++]=2; // conexiónNO establecida
402                                $this->ultimoerror=2;
403                                return(false);
404                        }
405                        else{
406                                if ($this->Conexion->estado==0){
407                                        $this->error[$this->inderror++]=3; // conexiónNO abierta
408                                        $this->ultimoerror=3;
409                                        return(false);
410                                }
411                        }
412                }
413                $this->Traduce();
414                if (!$this->resul=mysql_query($this->texto,$this->Conexion->controlador)){
415                        $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando
416                        $this->ultimoerror=4;
417                        return(false);
418                }
419                if (stristr($this->texto,"select")){
420                        $this->Recordset->Inicializar();
421                        $this->Recordset->filas=$this->resul;
422                        $this->Recordset->numerodecampos=mysql_num_fields($this->Recordset->filas);
423                        $this->Recordset->numeroderegistros=mysql_num_rows($this->Recordset->filas);
424                        if ($this->Recordset->numeroderegistros>0){
425                                $this->Recordset->BOF=false;
426                                $this->Recordset->EOF=false;
427                                $this->Recordset->campos=mysql_fetch_array($this->Recordset->filas);
428                        }
429                }
430
431                $this->error[$this->inderror++]=0; // Comando ejecutado correctamante
432                $this->ultimoerror=0;
433                return(true);
434        }
435        /* -------------------------------------------------------------------------------------------
436                Esta funci� recupera el ltimo nmero asignado a una clave autonum�ica de una tabla
437        ---------------------------------------------------------------------------------------------*/
438        function Autonumerico(){
439                $ulreg=mysql_insert_id();
440                return($ulreg);
441        }
442}
443/*=========================================================================================
444        Clase para consultar tablas y vistas de una base de datos.
445
446        Especificaciones:
447                - Estado del recordset ($estado)
448                0: Cerrado
449                1: Abierto
450=========================================================================================*/
451class Recordset{
452        var $Comando;
453        var $filas= array();
454        var $BOF,$EOF,$estado;
455        var $campos;
456        var $numeroderegistros,$numerodecampos,$posicion;
457
458        var $error;                                             // Error
459        var $ultimoerror;                               // Ultimo error detectado
460        var $inderror;                                  // Contador de errores
461        var $msgerrores=array(
462                "No se ha producido ningn error",
463                "001 : Recordset Error - Comando no establecido",
464                "002 : Recordset Error - No se ha establecido la conexióndel comando",
465                "003 : Recordset Error - No se ha abierto la conexi�",
466                "004 : Recordset Error - No se pudo abrir la consulta",
467                "005 : Recordset Error - La sentencia SQl del comando no contiene la clausula SELECT",
468                "006 : Recordset Error - No se puede liberar la consulta",
469        );     
470        /*--------------------------------------------------------------------------------------------*/
471        function Recordset(){ // Constructor de la clase
472                $this->Inicializar();
473        }
474        /* -------------------------------------------------------------------------------------------
475                Inicializa propiedades de las clase
476        ----------------------------------------------------------------------------------------------*/
477        function Inicializar(){
478                $this->BOF=true;
479                $this->EOF=true;
480                $this->posicion=0;
481                $this->numeroderegistros=0;
482                $this->numerodecampos=0;
483                $this->estado=0;
484        }
485        /* -------------------------------------------------------------------------------------------
486                Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
487        ----------------------------------------------------------------------------------------------*/
488        function UltimoError(){
489                return($this->ultimoerror);
490        }
491        /* -------------------------------------------------------------------------------------------
492                Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
493        ----------------------------------------------------------------------------------------------*/
494        function DescripUltimoError(){
495                return($this->msgerrores[$this->ultimoerror]);
496        }
497        /* -------------------------------------------------------------------------------------------
498                Establece el comando que se usar�para ejecutar las consultas pertinentes
499
500                Par�etros de entrada:
501                        objcomando: Un objeto comando con la sentencia SQL (Puede contener par�etros)
502
503                Devuelve :
504                        true : Si el texto del comando contiene la clausula SELECT
505                        false: En caso contrario
506
507                En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
508        ---------------------------------------------------------------------------------------------*/
509        function EstableceComando($objcomando){
510                $this->inderror=-1; // Inicializar contador de errores
511                $this->ultimoerror=-1;
512                if (stristr($objcomando->texto,"select")){
513                        $this->Comando=$objcomando;
514                        $this->error[$this->inderror++]=0; // Comando v�ido, contiene "SELECT"
515                        $this->ultimoerror=0;
516                        return(true);
517                }
518                else{
519                        $this->error[$this->inderror++]=5; // Comando no valido, NO contiene "SELECT"
520                        $this->ultimoerror=5;
521                        return(false);
522                }
523        }
524        /* -------------------------------------------------------------------------------------------
525                Sustituye el valor de los parametros en la expresi� que forma el texto del Comando
526        ---------------------------------------------------------------------------------------------*/
527        function Traduce(){
528                $execomando=$this->Comando->texto;
529                if (sizeof($this->Comando->parametros)>0){ // Hay par�etros que sustituir
530                        foreach($this->Comando->parametros as $parametro){
531                                if ($parametro["tipo"]==0) // Tipo alfanum�ico
532                                        $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando);
533                                else
534                                        $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando);
535                        }
536                }
537                $this->Comando->texto=$execomando;
538        }
539        /* -------------------------------------------------------------------------------------------
540                Recupera registros de la base de datos
541        ---------------------------------------------------------------------------------------------*/
542        function Abrir(){
543                $this->inderror=-1; // Inicializar contador de errores
544                $this->ultimoerror=-1;
545                if ($this->Comando==null){
546                        $this->error[$this->inderror++]=1; // Comando no especificado
547                        $this->ultimoerror=1;
548                        return(false);
549                }
550                else{
551                        if ($this->Comando->Conexion==null){
552                                $this->error[$this->inderror++]=2; // conexiónNO establecida
553                                $this->ultimoerror=2;
554                                return(false);
555                        }
556                        else{
557                                if ($this->Comando->Conexion->estado==0){
558                                        $this->error[$this->inderror++]=3; // conexiónNO abierta
559                                        $this->ultimoerror=3;
560                                        return(false);
561                                }
562                        }
563                }
564                $this->Traduce();
565                $this->Inicializar();
566                if (!$this->filas=mysql_query($this->Comando->texto,$this->Comando->Conexion->controlador)){
567                        $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando o al abrir la consula
568                        $this->ultimoerror=4;
569                        return(false);
570                }
571                $this->numeroderegistros=mysql_num_rows($this->filas); // La consulta se ha realizado con �ito
572                $this->numerodecampos=mysql_num_fields($this->filas);
573                if ($this->numeroderegistros>0){
574                        $this->BOF=false;
575                        $this->EOF=false;
576                        $this->campos=mysql_fetch_array($this->filas);
577                }
578                $this->estado=1; // Recordset abierto
579                $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta
580                $this->ultimoerror=0;
581                return(true);
582        }
583        /* -------------------------------------------------------------------------------------------
584                Libera los registros de una consulta de la base de datos
585        ---------------------------------------------------------------------------------------------*/
586        function Cerrar(){
587                $this->inderror=-1; // Inicializar contador de errores
588                $this->ultimoerror=-1;
589                if (!mysql_free_result($this->filas)){
590                        $this->error[$this->inderror++]=6; // Error al cerrar la consulta (Al liberar memoria)
591                        $this->ultimoerror=6;
592                        return(false);
593                }
594                $this->Inicializar();
595                $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta
596                $this->ultimoerror=0;
597                return(true);
598        }
599        /* -------------------------------------------------------------------------------------------
600                Mueve el puntero de lectura al siguiente registro del recordset
601        ---------------------------------------------------------------------------------------------*/
602        function Siguiente(){
603                if (!$this->EOF){
604                        $this->posicion++;
605                        if ($this->posicion==$this->numeroderegistros)
606                                $this->EOF=true;
607                        else{
608                                if (mysql_data_seek($this->filas,$this->posicion))
609                                        $this->campos=mysql_fetch_array($this->filas);
610                        }
611                }
612        }
613        /* -------------------------------------------------------------------------------------------
614                Mueve el puntero de lectura al anterior registro del recordset
615        ---------------------------------------------------------------------------------------------*/
616        function Anterior(){
617                if (!$this->BOF){
618                        $this->posicion--;
619                        if ($this->posicion<0)
620                                $this->BOF=true;
621                        else{
622                                if (mysql_data_seek($this->filas,$this->posicion));
623                                        $this->campos=mysql_fetch_array($this->filas);
624                        }
625                }
626        }
627        /* -------------------------------------------------------------------------------------------
628                Mueve el puntero de lectura al primer registro del recordset
629        ---------------------------------------------------------------------------------------------*/
630        function Primero(){
631                if ($this->numeroderegistros>0){
632                        $this->posicion=0;
633                        if (mysql_data_seek($this->filas,$this->posicion))
634                                $this->campos=mysql_fetch_array($this->filas);
635                }
636        }
637        /* -------------------------------------------------------------------------------------------
638                Mueve el puntero de lectura al ltimo registro del recordset
639        ---------------------------------------------------------------------------------------------*/
640        function Ultimo(){
641                if ($this->numeroderegistros>0){
642                        $this->posicion=$this->numeroderegistros-1;
643                        if (mysql_data_seek($this->filas,$this->posicion))
644                                $this->campos=mysql_fetch_array($this->filas);
645                }
646        }
647}       
648?>
Note: See TracBrowser for help on using the repository browser.