Re: ruby/postgres - getting assoc array of rows?
От | Michael Fuhr |
---|---|
Тема | Re: ruby/postgres - getting assoc array of rows? |
Дата | |
Msg-id | 20051120053247.GA31157@winnie.fuhr.org обсуждение исходный текст |
Ответ на | ruby/postgres - getting assoc array of rows? (CSN <cool_screen_name90001@yahoo.com>) |
Ответы |
Re: ruby/postgres - getting assoc array of rows?
Re: ruby/postgres - getting assoc array of rows? |
Список | pgsql-interfaces |
On Sat, Nov 19, 2005 at 08:14:40PM -0800, CSN wrote: > Looking at the docs here: > http://ruby.scripting.ca/postgres/reference.html > > there doesn't appear to be an easy way to get an associative row > of rows returns. What exactly are you looking for? The example you posted returns an array of hashes, but depending on what you're doing all that work might not be necessary. PGconn#exec returns a PGresult object, the PGresult#each iterator yields PGrow objects, and PGrow#[] accepts both numeric and text indexes. Example: % psql -d test -c 'SELECT id, name FROM people'id | name ----+------- 1 | Alice (1 row) % cat test.rb require 'postgres' conn = PGconn.new('dbname=test') res = conn.exec('SELECT id, name FROM people') res.each do |row| puts "by name: #{row['id']} #{row['name']}" puts "by position: #{row[0]} #{row[1]}" end res.clear conn.close % ruby test.rb by name: 1 Alice by position: 1 Alice You could also convert the PGresult object into an array of PGrow objects with a one-liner, although you wouldn't get automatic bytea handling as in the function you posted: rows = res.collect Will any of this work for you? If not then please provide more detail. -- Michael Fuhr
В списке pgsql-interfaces по дате отправления: