Storing Postgres data in a variable

I’m learning how to work with Postgres databases.

I’ve figured out how to get the script at

to run properly. I learned from this script how to enter data into a
database table (addUser function) and how to print data from a database
table on the screen (queryUserTable function).

What I’m trying to do now is store data from a database table in a
variable
(like an array of strings). For this particular example, how would you
go
about doing this?

Jason H., Android developer wrote in post #1103930:

I’m learning how to work with Postgres databases.

I’ve figured out how to get the script at

to run properly. I learned from this script how to enter data into a
database table (addUser function) and how to print data from a database
table on the screen (queryUserTable function).

What I’m trying to do now is store data from a database table in a
variable
(like an array of strings). For this particular example, how would you
go
about doing this?

p.queryUserTable {|row| printf(“%d %s\n”, row[‘id’], row[‘name’])}

This line has done exactly what you’re asking. The “row” is a hash
variable that contains the data from the database. If you want to put
that data a variable of your own the just define a variable and put the
data in it:

Add the name from each row in an array

my_arrary = []
p.queryUserTable do |row|
my_array << row[‘name’]
end
puts my_array

In fact if you look at this line:

@conn.exec( “SELECT * FROM users” ) do |result|

All the data from the table is already given to you inside the “result”
hash, which is just a variable containing the data you selected from the
database. There’s really no need to make yet another variable to put the
data into. Just use the one the PostgreSQL connection gives you back.

Are you averse to using ORMs? They tend to make things so much easier
when dealing with RDBMS databases.

Julian