Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Intermedio » Consulta SELECT, con campos VARIABLES Responder al tema
Nuevo tema


Página 1 de 1  [ 2 mensajes ] 
 
Nota 2011-11-22 06:01 @292

Perlero Frecuente
Registrado: 2005-04-28 05:47 @282
Mensajes: 188
Consulta SELECT, con campos VARIABLES
Quisiera generar una aplicación en donde el usuario pueda diseñar, él mismo, consultas a una base de datos acorde a los campos de datos que desea conocer.

Tendría un formulario con las siguientes cajas de texto:
• Select ($param_select): para indicar los nombres de las columnas de la tabla que desea
• Campo ‘FROM’ ($param_from), para indicar el nombre de la tabla y
• Campo ‘WHERE’ ($param_where) para ingresar condiciones si tuviese.

Mi pregunta es, al ejecutar:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. my $query = " SELECT " . $param_select
  2.           . " FROM "   . $param_from
  3.           . " WHERE "  . $param_where
  4.           ;
  5.  
  6. my $sth = $dbh->prepare($query) or die("Error prepare: $query");
  7. $sth->execute() or die("Error prepare: $query");
  8.  


Suponiendo que obtenga varias filas y columnas resultado, ¿cómo hago para acceder a cada uno de los datos columnas y filas del resultado, si no conozco el nombre de las mismas?

¡¡ Muchas gracias !!


Nota 2011-11-22 08:03 @377
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Consulta SELECT, con campos VARIABLES
En la documentación de DBI se indican algunos procedimientos para sacar información del esquema de la base de datos.

Uno de ellos es, después de hacer la consulta, mirar el contenido del atributo NAME, que contiene una referencia a un array, en que cada elemento es el nombre de la columna.

Por ejemplo, para acceder al primer nombre de columna se puede usar esto:

say "Nombre primera columna: $sth->{NAME}->[0]";

Más información en la sección Statement Handle Attributes de DBI. Ver también primer ejemplo de la sección Simple Examples.

También, usando $sth->fetchall_arrayref({}) o fetchall_hashref() se obtiene la referencia a un hash cuyas claves son los nombres de las columnas, pero con el problema conocido de que esas claves (columnas) no salen en el mismo orden en que se describe en la definición de la tabla (por ser un hash Perl, desde luego), con lo que en algunas situaciones no es deseable (algunas aplicaciones requieren conocer el orden de las columnas).

_________________
JF^D Perl programming


Responder al tema  [ 2 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO