Using perl Syntax Highlighting
- sub init{
- &comprobarDB(); # Llamada a subrutina CompararDB.
- my $grupo = @_;
- my($conexion,$sth); # Declaración de las variables que utilizaremos a continuación.
- $conexion = ConectarDBcon->connect(); # Conectamos con la base de datos desde el paquete ConectarDB y lo dejamos en la variable $dbh.
- #Leer datos.
- print "$grupo\n";
- #Crear.
- &crearTabla($grupo, $conexion);
- #Desconectar.
- $conexion->disconnect;
- }
- # Subrutina crearTabla.
- sub crearTabla {
- my($conexion,$tabla);
- $tabla = $_[0];
- $conexion = $_[1]; #Desde la llamada a la subrutina le pasamos la conexión a la base de datos. Desde la llamada sería la segunda variable que le pasamos.
- eval {$conexion->do("CREATE TABLE $tabla (nombre VARCHAR(30), correo VARCHAR(100))")}; #Hacemos un eval, cuya función será dejar que la tabla se cree o no dependiendo de si existe,y desde la conexión a la base de datos hacemos crearemos la tabla si no existe ya.
- if ($@) {
- printf("La tabla existe \n") # Se captura el error si la tabla existe y nos dice que "La tabla existe".
- }
- }
- #Subrutina comprobarDB.
- sub comprobarDB {
- my @databases = DBI->data_sources("mysql", {host => 'localhost', user => 'root', password => 'password'});# Cogemos la lista de bases de datos presentes en el sistema.
- my $base_datos = 'contactos'; #Introducimos el nombre de la base de datos que queremos comprobar que está en la variable $base_datos.
- my $dsn = "DBI:mysql:$base_datos"; # Conformamos el DSN de esa base de datos.
- unless ($dsn ~~ @databases) { # Si el $dsn no está entre las @databases la creamos.
- my $drh = DBI->install_driver("mysql"); # Carga del controlador mysql
- my $rc = $drh->func("createdb", $base_datos, 'localhost', 'root', 'password', 'admin');# Creamos la base de datos.
- }
- }
- 1;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
y la llamada desde la interfaz:
Using perl Syntax Highlighting
- sub Button13_Click {
- my $texto = $ventanaCG->TextFieldcg1->Text();
- print $texto,"\n";
- crearGrupo->init($texto);
- $ventanaCG->TextFieldcg2->Text("Listo!!!!!");
- return 0;
- };
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
No me crea todavía el grupo y cuando ejecuto me devuelve el nombre que puse en textfield y un 2 después; el nombre es del print() de la interfaz y el 2 será del print() del init(). Hay algo que estoy haciendo mal, pero no sé qué es.