2010-01-12 13 views
1

J'utilise le module mysql de Ruby.Obtenir les noms des en-têtes de colonne à partir du résultat MySQL dans Ruby

Je souhaite imprimer les résultats d'une requête et inclure les noms des colonnes. J'ai du mal à trouver la méthode pour me donner un tableau de ces noms. J'ai les valeurs comme indiqué ci-dessous.

résultat = my.query ("select * from foo")

result.each do | ligne | met row.join (',') fin

Merci pour l'aide!

Répondre

2

result.fetch_fields.each_with_index do |info, i| 
     printf "--- Column %d (%s) ---\n", i, info.name 
     printf "table:   %s\n", info.table 
     printf "def:    %s\n", info.def 
     printf "type:    %s\n", info.type 
     printf "length:   %s\n", info.length 
     printf "max_length:  %s\n", info.max_length 
     printf "flags:   %s\n", info.flags 
     printf "decimals:   %s\n", info.decimals 
    end 
+0

Cela a fonctionné. Je vous remercie. – Poul

+0

depuis ce post, nous sommes passés à la gemme ruby ​​suite pour nos requêtes mysql et sommes très heureux avec elle: http://sequel.rubyforge.org/documentation.html – Poul

0

Cela ne répond peut-être pas directement à votre question, mais vous pourriez bénéficier d'une extraction d'une couche d'abstraction de base de données. Il y en a plusieurs pour Ruby, notamment ActiveRecord. ActiveRecord est fourni en tant que partie modèle du framework Ruby on Rails, mais vous pouvez l'utiliser de manière autonome sans le reste de Rails. Avec (ou quelque chose de similaire), vous serez en mesure de créer des applications plus rapidement et plus précisément, car il fournit des outils précieux pour communiquer avec votre base de données - des outils que vous passer beaucoup de temps à développer vous-même. Si jamais vous choisissez de changer votre fournisseur de base de données de MySQL à autre chose (PostgreSQL ou Oracle, par exemple), vous n'aurez pas à recoder beaucoup.