[Lazarus] TSQLQuery: Getting autoincremented ID value after insert (MySQL)

Michael Van Canneyt michael at freepascal.org
Fri Nov 14 14:15:08 CET 2014



On Fri, 14 Nov 2014, Reimar Grabowski wrote:

> On Thu, 13 Nov 2014 13:26:32 -0300
> Marcos Douglas <md at delfire.net> wrote:
>
>> Hi,
>> Take a look in Greyhound project: https://github.com/mdbs99/Greyhound
> I did and could not see how it helps.
>
>> Here you can see an example using "last id":
>> https://github.com/mdbs99/Greyhound/blob/master/test/ghsqltest.pas#L285
> Yes, if you are using Greyhound, which I am not.
>
> So it looks like there's nothing in TSQLQuery that does the job for me.
> I now just use another TSQLQuery with the following SQL:
>
> SELECT LAST_INSERT_ID() AS SomeNameIChoose;
>
> Seems to work well, reduces the lines of code as I don't have to set parameters (my primary goal), can be reused for other inserts (being not table dependent) and took about 1 Minute to implement.

Connections for databases that have lastinsertID you can call the method created for this:

Function GetInsertID: int64;

There is a plan to let SQLDB retrieve the value of some fields fro the DB, 
but it is not implemented yet.

Michael.




More information about the Lazarus mailing list