Re: ADO and sequences

Поиск
Список
Период
Сортировка
От Johann
Тема Re: ADO and sequences
Дата
Msg-id 6.1.0.6.0.20060822131714.05292890@pop.dnvr.uswest.net
обсуждение исходный текст
Ответ на ADO and sequences  (Andreas <maps.on@gmx.net>)
Ответы Re: ADO and sequences
Список pgsql-odbc
Easiest way I've found is to read NextVal on the relevant sequence, and use
the value you get for the key field.

Since the field will be loaded, the "default" function that assigns the
number, kind of like an Access Autonumber - will *not* override the value
you manually insert.

So:
Get nextval on sequence
.addnew
recordset!idfield = thenextvalyougot




At 11:38 AM 8/22/06, Andreas wrote:
>Hi,
>
>I'd like to write to PG from Access2000 with ADODB.
>I got it running, but I'd like to know the sequence-nr that gets used when
>a new record is created.
>
>I open a recordset with
>        .CursorLocation = adUseClient
>        .CursorType = adOpenStatic
>        .LockType = adLockOptimistic
>then I call its AddNew method, the columns get filled and the recordset is
>closed.
>The primary key is a SERIAL.
>Is there a way to read the pkey before I commit the record?
>Access knows it's Autonumbers after AddNew when I use it's JET db-engine.
>
>A "select currval...." after the AddNew yields
>Error while executing the query;
>ERROR:  currval of sequence "personen_person_id_seq" is not yet defined in
>this session
>
>I'd rather not use currval anyways. I'd prefer to have the program not
>know to much of the structure that sits in the db backend, like the
>sequence's name in this case.
>
>Can I get something like this :
>
>rs.AddNew
>     lngID = rs!id
>
>     rs!field1 = value1
>     rs!field2 = value2
>....
>rs.update
>rs.close
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: Don't 'kill -9' the postmaster


В списке pgsql-odbc по дате отправления:

Предыдущее
От: Andreas
Дата:
Сообщение: ADO and sequences
Следующее
От: Andreas
Дата:
Сообщение: Re: ADO and sequences