From: | "Patrick Welche" <prlw1(at)newn(dot)cam(dot)ac(dot)uk> |
---|---|
To: | pgsql-interfaces(at)postgresql(dot)org |
Subject: | sequences |
Date: | 1999-04-29 18:05:13 |
Message-ID: | E10cvBR-0006Ta-00@quartz.newn.cam.ac.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
After the interesting discussion on what is the safest way to have a unique
"oid"-like value per row, I thought I would have a go, but from libpq++ I
don't seem to be able to read the new sequence value:
Table = person
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| id | int4 not null default nextval('p | 4 |
| surname | text not null | var |
| firstname | text not null | var |
| email | text | var |
| phone | text | var |
| rfbdate | date | 4 |
+----------------------------------+----------------------------------+-------+
Index: person_id_key
The output from my test program is:
INSERT INTO person (surname,firstname,email,phone) VALUES ('Welche','Patrick','
prlw1',null)
SELECT currval('person_id_seq')
Missing person id
and the relevant bit of code is:
query<<"INSERT INTO person (surname,firstname,email,phone) VALUES ('"
<<a._surname<<"','"<<a._firstname<<"',"
<<ISNULL(a._email)<<','
<<ISNULL(a._phone)<<')'<<ends;
s.send_query(query);
query<<"SELECT currval('person_id_seq')"<<ends;
s.send_query(query);
if(s.Tuples()!=1)throw empty_result("Missing person id");
a.id(toid(s.GetValue(0,"currval")));
send_query prints the query and does a Exec(query). I suppose I don't
understand the difference between doing things interactively in psql (the
above INSERT and SELECT work then) and calling things from a program. Any
tips?
Cheers,
Patrick
From | Date | Subject | |
---|---|---|---|
Next Message | JT Kirkpatrick | 1999-04-29 18:07:32 | perl / pg / cgi / postgres |
Previous Message | Oliver Elphick | 1999-04-29 17:24:09 | Re: [INTERFACES] RPM for PgAccess 0.96 |