Subject Re: [Firebird-Java] Re: Getting a reference after insert
Author Rick Fincher
Thanks for the input David, AND for all the work you have already done on
this project.

I can work around this fairly easily in the particular app I'm doing.
Certain fields are never empty so I can just insert an empty record and the
generator puts in a new key. Then I can search for the record with the null
field, read the key, and update the record with the data. Then display the
key as a confirmation number for the user for future reference.

A little kludgy but it will work, and the speed shouldn't be too bad.
Fortunately this server insn't heavily loaded. I just have to insure that
no blank records get inserted if something breaks in mid-process, but that's
easy enough to scan for periodically.

Thanks,

Rick


----- Original Message -----

> There's support for this stuff in jdbc 3. I think there is some way to
get
> this info from firebird also, but it may require modifying the dsql
parser.
> I think I remember Ann Harrison talking about it. Oh to have enough time
> to take a look!
>
> david jencks
>
> On 2002.08.06 17:28:29 -0400 rrokytskyy wrote:
> > Hi,
> >
> > > Forgive my ignorance about SQL, but is there a way to get the primary
> > > key back of a record that is inserted? I know I can do a search on
the
> > > same record data, but it is not guaranteed to be distinct. Do any of
> > > the driver call return this to the calling java program?
> >
> > Since you've used magic word "java" you're not bounced to IB-Support
> > list :)
> >
> > As far as I know there is no chance to get value of an ID generated
> > during execution of INSERT ... statement. You can either select next
> > ID directly before executing INSERT with
> >
> > SELECT gen_id(my_generator, 1) FROM RDB$DATABASE
> >
> > or you can get a block of IDs (for example 100) using
> >
> > SELECT gen_id(my_generator, 100) FROM RDB$DATABASE
> >
> > and then set them directly in your INSERT statement ("select ... from
> > rdb$database" returns you exactly one row). If you have other
> > applications that assume that ID is generated automatically, you can
> > modify your trigger so it does not generate new ID if your primary key
> > is not null.
> >
> > But in general, such questions should be posted to IB-Support group,
> > you would get better feedback there.
> >
> > Best regards,
> > Roman Rokytskyy