[fpc-pascal] How to insert a record and get the primary key with sqldb?
Michael Van Canneyt
michael at freepascal.org
Sat Oct 22 16:01:40 CEST 2011
On Sat, 22 Oct 2011, Martin Schreiber wrote:
> On Saturday 22 October 2011 15.21:40 Marco van de Voort wrote:
>> In our previous episode, Felipe Monteiro de Carvalho said:
>>> Ok, now I want to insert a record in my table and I would like to
>>> obtain the auto-generated PrimaryKey
>>
>> This is a classic problem, since SQL simply doesn't support this.
>>
>> So all DBs do something else, for postgresql there are sequence objects
>> that can be queried, while other allow to return the id of the
>> autogenerated fields.
>>
>> Afaik sqldb does not abstract this yet.
>
> MSEgui updates inserted primary key fields automatically for MySQL and SQLite3
> by "lastinsertid". IIRC sqldb does the same?
Not to my knowledge.
It stores the lastinsertid in the cursor, but this is not made available to the programmer.
> For database which support the "returning" clause tmse*field.providerflags1
> pf1_refreshinsert and pf1_refreshupdate can be used, this works for all
> fields.
Hardly an abstraction, it's just some automatisms :-)
But good to know.
We should really overhaul sqldb and add some of the MSEgui features.
Thanks, Martin.
Michael.
More information about the fpc-pascal
mailing list