K jednotlivým polím výsldku můžeme přistupuvat buď přes index, první pole má index 0
, nebo přes jména sloupců které použijeme jako indexy.
val = row[2] val = row['height']
Pokud neznáme jména sloupců a ani jejich počet, prostě provádíme dotaz na neznámou tabulku, můžeme použít iterační metodu each_with_name
dbh.execute("SELECT * FROM mytable") do |row| row.each_with_name do |val, name| #... pole name má hodnotu val printf "%s: $s, ", name, val.to_s end print "\n" end
Pokud potřebujeme zjistit jména polí, například chceme vytvořit tabulku ať již v HTML nebo v prostém textu kde v hlavičce uvedeme jména sloupců a pod nimi hodnoty použijeme FIXME:
FIXME: vyřešit a dopsat příklad
sth = dbh.execute("SELECT f1, f2, f3 FROM mytable ORDER by f1;")
sth.column_info.each ...
sth.each do |row|
puts "<tr>"
row.each do |col|
puts "<td>#{col}</td>"
end
row.collect{|fld| "<td>#{fld.to_s}</td>"}.join
puts "</tr>\n"
end
sth.finish