Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle Primary key and Delphi: How to insert the primary key value automatically ?

Re: Oracle Primary key and Delphi: How to insert the primary key value automatically ?

From: Gary England <gengland_at_hiwaay.net>
Date: 1997/09/28
Message-ID: <342F23BA.1E1E@hiwaay.net>#1/1

Ger Otten wrote:
>
> At the moment I am developing a client/server application with delphi 3
> Client/Server and Oracle 7.3.3.
> To make the application as fast as possible I want to use numeric primary
> keys.
>
> Oracle has the possibilty to generate sequence numbers that can be used as
> the value for the primary key in a table.
> For instance:
>
> Create sequence order_seq
> start with 1
> increment by 1
> nocylce
> cache 20;
>
> At the moment I insert a new record in a table I can reference the sequence
> number with NEXTVAL.
> For instance:
>
> Insert into orders (orderno, custno)
> values (order_seq.NEXTVAL, 1032)
>
> Questions:
>
> 1. Is it possible to use Oracle Database triggers to automatically fill in
> the next sequence number in the primary key field ?
> If so how can this be achieved ?
>
> 2. If this is not possible I would like to know the following : When I have
> a table open in a grid open in Delphi and I am in the edit
> mode. When I insert a record can I then get the next sequence number from
> Oracle and fill it myself in the table ? How do I do that.
> 3. Maybe both are possible: What do you prefer ?
>
> Thank you very much in advance !!
>
> sincerely,
>
> Ger Otten
>
> email: gmjotten_at_worldonline.nl
>

It can be done with a pre-insert trigger for the table, but that would not get you the sequence number back into your program.

Either with or without DB.StartTransaction you can get a value from the sequence generator by running a query like:

SELECT mysequence.NEXTVAL from DUAL;

The value returned is guaranteed to be unique and can be supplied as the primary key of your INSERT. Received on Sun Sep 28 1997 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US