• Publicidad

Utilizar una sola conexión

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Utilizar una sola conexión

Notapor SirBuce » 2007-04-11 09:43 @446

Buenas,

Tal vez esta pregunta no sea de nivel intermedio, si es así mis disculpas al moderador.

Veréis, estoy usando un pm que contiene funciones, pero en vez de abrir la conexión y cerrarla en cada conexión quiero hacer lo siguiente.

En el fichero pl que tengo, el use al fichero pm abro la conexión y la cierro. En el medio de esas sentencias, quiero usar las funciones que correspondan, pero no sé cómo poder usar la variable de conexión en las funciones que están declaradas en el fichero pm.

¿Alguien me puede echar un cable?

Gracias.
SirBuce
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2007-04-11 09:39 @443

Publicidad

Notapor kidd » 2007-04-11 11:18 @512

Te podríamos ayudar si nos muestras un poco del código que tienes en el módulo para entender más lo que necesitas.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Utilizar una sola conexión

Notapor Perl user » 2007-04-11 12:02 @543

SirBuce escribiste:Buenas,

Tal vez esta pregunta no sea de nivel intermedio, si es así mis disculpas al moderador.

Veréis, estoy usando un pm que contiene funciones, pero en vez de abrir la conexion y cerrarla en cada conexión quiero hacer lo siguiente.

En el finchero pl que tengo el use al fichero pm abro la conexión y la cierro. En el medio de esas sentencias, quiero usar las funciones que correspondan, pero no se como poder usar la variable de conexión en las funciones que están declaradas en el fichero pm.

Alguien me puede echar un cable?

Gracias.


Me suena a qué quieres generar UNA sola conexión para todas las instancias de tu programa o módulo.

Una solución (y no implica la mas correcta) podría ser declarar una variable léxica global llamada $dbh, e inicializarla en un bloque BEGIN y cerrarla en un bloque END, algo como:



Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $dbh;
BEGIN {
    $dbh = DBI->connect(...);
}

...
# funciones

END {
    $dbh->close
}
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El bloque END es opcional si tu módulo realmente es una clase y provees de algún método como close() o algún destructor elaborado con DESTROY.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Notapor SirBuce » 2007-04-12 02:31 @146

Buenas,

He conseguido hacer lo de la conexión de una manera que no me parece la correcta, de todas formas he optado por dejar aparcado ese tema hasta que me llegue mi librito de Perl. Si ya tenía uno, pero era muy, muy antiguo ;)

Y como hace más de 5 años que no toco Perl... pues creo que un buen libro no me vendrá de más, una vez con lectura y lección aprendida supongo que mis preguntas serán más coherentes o por lo menos con más lógica aparente.

Muchas gracias por vuestro tiempo.

Salu2.
SirBuce
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2007-04-11 09:39 @443


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados