[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

require 'postgres'

hiddenhippo

1/17/2008 9:21:00 PM

hi,

I'm trying to write a test application that queries a postgres
database, which so far I've managed to do but in a limited way. I'm
completely lost how to perform transactions and how to return the
primary key id for newly inserted rows. hopefully by placing some
code someone might be able to help,

require 'postgres'

db = PGconn.connect('localhost',
5432,'','','testdatabase','username','password')
results = db.exec('select * from testtable')

I can then loop on results and display them using puts.

However suppose i wanted to issue the following statement but within a
transaction? I simply can't find any documentation anywhere to help
me

db.exec('delete from testtable')

in addition, suppose i was to insert a row into testtable and want the
id returned back? i can't figure that out either.

can anyone help?
1 Answer

J-H Johansen

1/17/2008 11:30:00 PM

0

On Jan 17, 2008 10:25 PM, hiddenhippo <redaudi@gmail.com> wrote:
> hi,
>
> I'm trying to write a test application that queries a postgres
> database, which so far I've managed to do but in a limited way. I'm
> completely lost how to perform transactions and how to return the
> primary key id for newly inserted rows. hopefully by placing some
> code someone might be able to help,
>
> require 'postgres'
>
> db = PGconn.connect('localhost',
> 5432,'','','testdatabase','username','password')
> results = db.exec('select * from testtable')
>
> I can then loop on results and display them using puts.
>
> However suppose i wanted to issue the following statement but within a
> transaction? I simply can't find any documentation anywhere to help
> me
>
> db.exec('delete from testtable')

Not entirely sure I understand the problem with that statement.

> in addition, suppose i was to insert a row into testtable and want the
> id returned back? i can't figure that out either.

Say testtable contains 2 columns <id> and <name> where <id> is auto
incremented on insert.

result = db.exec("INSERT INTO testtable(name) VALUES('b') RETURNING id")
q_id = result[0][0]

--
J-H Johansen
--
There are 10 kinds of people in the world: Those who understand binary and
those who don't...