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

2014-11-17 Thread Marco van de Voort
On Fri, Nov 14, 2014 at 09:41:27PM -0300, silvioprog wrote: > > > > Return the value most recently returned by nextval in the current > > session. This function is identical to currval, except that instead of > > taking the sequence name as an argument it fetches the value of the last > > seque

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

2014-11-15 Thread Graeme Geldenhuys
On 2014-11-13 14:07, Reimar Grabowski wrote: > It seems to work but it's IMHO not very nice. > Ideally I'd like to have TSQLQuery do it for me and offer me some property > like SQLQuery.LastInsertID or something along those lines. > Is there any way to get the new PK value without manually queryin

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

2014-11-14 Thread Reimar Grabowski
On Fri, 14 Nov 2014 19:23:50 +0100 (CET) Michael Van Canneyt wrote: > a) Did you do an insert right before the call to GetInsertID ? > b) Is the transaction active after the insert ? > c) The connection transaction should be the same as the transaction of the > insert. Got it working. MySQL55

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 8:32 PM, Marco van de Voort wrote: > On Fri, Nov 14, 2014 at 03:11:30PM +0100, Michael Van Canneyt wrote: > > > > By the very nature of the problem: GetLastAutoIncValue simply cannot be > implemented in general. > > > > In firebird, postgres, > > (and Oracle afaik) > > > t

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

2014-11-14 Thread Marco van de Voort
On Fri, Nov 14, 2014 at 03:11:30PM +0100, Michael Van Canneyt wrote: > > By the very nature of the problem: GetLastAutoIncValue simply cannot be > implemented in general. > > In firebird, postgres, (and Oracle afaik) > these values are generated using a generator/sequence. > You don't know the

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 3:23 PM, Michael Van Canneyt wrote: > > On Fri, 14 Nov 2014, Reimar Grabowski wrote: > >> On Fri, 14 Nov 2014 14:50:20 +0100 >> Reimar Grabowski wrote: >> >> On Fri, 14 Nov 2014 14:15:08 +0100 (CET) >>> Michael Van Canneyt wrote: >>> >>> Connections for databases that h

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Marcos Douglas wrote: specify a refresh SQL statement. (coincidentally: these are the engines that use autoInc type fields instead of sequences) This option, to specify a SQL statement, is the programmer that write the SQL? This should come from driver, don't? If th

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Reimar Grabowski wrote: On Fri, 14 Nov 2014 14:50:20 +0100 Reimar Grabowski wrote: On Fri, 14 Nov 2014 14:15:08 +0100 (CET) Michael Van Canneyt wrote: Connections for databases that have lastinsertID you can call the method created for this: Function GetInsertID: i

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

2014-11-14 Thread Reimar Grabowski
On Fri, 14 Nov 2014 14:50:20 +0100 Reimar Grabowski wrote: > On Fri, 14 Nov 2014 14:15:08 +0100 (CET) > Michael Van Canneyt wrote: > > > Connections for databases that have lastinsertID you can call the method > > created for this: > > > > Function GetInsertID: int64; Unfortunately it does no

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 2:11 PM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, Marcos Douglas wrote: > >>> Your remarks sound like maybe you don't understand/know exactly what >>> RETURNING does ? >>> It was invented exactly to deal with such things. >> >> >> AFAIK RETURNING is a SQL claus

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Marcos Douglas wrote: Your remarks sound like maybe you don't understand/know exactly what RETURNING does ? It was invented exactly to deal with such things. AFAIK RETURNING is a SQL clause. I know that but I never used before. You tell me SQLdb will use RETURNING claus

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 11:43 AM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, Marcos Douglas wrote: > >>> By the very nature of the problem: GetLastAutoIncValue simply cannot be >>> implemented in general. >>> >>> In firebird, postgres, these values are generated using a >>> generator/se

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

2014-11-14 Thread Reimar Grabowski
On Fri, 14 Nov 2014 12:49:44 -0300 silvioprog wrote: > This means that the value returned by the function to a given > client is the first AUTO_INCREMENT value generated for most recent > statement affecting an AUTO_INCREMENT column *by that client*. Just to clarify, the 'first' here is importa

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 12:49 PM, silvioprog wrote: > On Fri, Nov 14, 2014 at 11:43 AM, Michael Van Canneyt < > mich...@freepascal.org> wrote: > [...] > >> AFAIK Only sqlite does not (maybe it does today). But that is not a DBMS >> :-) > > > Yes. It would be nice execute the "last_insert_rowid()"

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 11:47 AM, Michael Van Canneyt < mich...@freepascal.org> wrote: [...] > I was planning some fallback mechanism, yes. And a "class function > SupportReturningClause : Boolean" or something similar. > Or maybe > > TDBCapability = (lastID,returningclause); > TDBCapabilities = s

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 11:43 AM, Michael Van Canneyt < mich...@freepascal.org> wrote: [...] > AFAIK Only sqlite does not (maybe it does today). But that is not a DBMS > :-) Yes. It would be nice execute the "last_insert_rowid()" to return it in the same cursor (AFAIK, Android SDK use this mecha

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, luiz americo pereira camara wrote: 2014-11-14 11:43 GMT-03:00 Michael Van Canneyt : On Fri, 14 Nov 2014, Marcos Douglas wrote: This RETURNING clause works for all DBMS? AFAIK Only sqlite does not (maybe it does today). But that is not a DBMS

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, silvioprog wrote: On Fri, Nov 14, 2014 at 11:11 AM, Michael Van Canneyt wrote: [...] By the very nature of the problem: GetLastAutoIncValue simply cannot be implemented in general. In firebird, postgres, these values are generated using a generator/sequenc

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

2014-11-14 Thread luiz americo pereira camara
2014-11-14 11:43 GMT-03:00 Michael Van Canneyt : On Fri, 14 Nov 2014, Marcos Douglas wrote: > > > This RETURNING clause works for all DBMS? >> > > AFAIK Only sqlite does not (maybe it does today). But that is not a DBMS > :-) > MySQL also does not implement it This is the workaround i use today:

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Marcos Douglas wrote: By the very nature of the problem: GetLastAutoIncValue simply cannot be implemented in general. In firebird, postgres, these values are generated using a generator/sequence. ...as well as could have a trigger for these cases, encapsulating the "pro

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Martin Schreiber wrote: On Friday 14 November 2014 15:11:30 Michael Van Canneyt wrote: The idea is to add [pfRefresh] to providerflags. When doing an insert, the fields with this flag will be added to the RETURNING clause and used to update the buffer. I suggest [pfRef

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 11:11 AM, Michael Van Canneyt < mich...@freepascal.org> wrote: [...] > By the very nature of the problem: GetLastAutoIncValue simply cannot be > implemented in general. > > In firebird, postgres, these values are generated using a > generator/sequence. > You don't know the

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 11:11 AM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, Marcos Douglas wrote: > >> On Fri, Nov 14, 2014 at 10:39 AM, Michael Van Canneyt >> wrote: >>> >>> >>> >>> On Fri, 14 Nov 2014, Marcos Douglas wrote: >>> On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Cann

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

2014-11-14 Thread Martin Schreiber
On Friday 14 November 2014 15:11:30 Michael Van Canneyt wrote: > > The idea is to add [pfRefresh] to providerflags. > When doing an insert, the fields with this flag will be added to the > RETURNING clause and used to update the buffer. > I suggest [pfRefreshInsert,pfRefreshUpdate] as in MSEgui. MS

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 10:40 AM, Michael Van Canneyt < mich...@freepascal.org> wrote: > > On Fri, 14 Nov 2014, silvioprog wrote: > >> On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt < >> mich...@freepascal.org> wrote: >> [...] >> Connections for databases that have lastinsertID you can

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 10:50 AM, Reimar Grabowski wrote: > On Fri, 14 Nov 2014 14:15:08 +0100 (CET) > Michael Van Canneyt wrote: > > > Connections for databases that have lastinsertID you can call the method > created for this: > > > > Function GetInsertID: int64; > That is actually exactly wha

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Marcos Douglas wrote: On Fri, Nov 14, 2014 at 10:39 AM, Michael Van Canneyt wrote: On Fri, 14 Nov 2014, Marcos Douglas wrote: On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt wrote: On Fri, 14 Nov 2014, Reimar Grabowski wrote: On Thu, 13 Nov 2014 13:26:32

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 10:40 AM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, silvioprog wrote: > >> On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt >> wrote: >> [...] >> Connections for databases that have lastinsertID you can call the >> method created for this: >> >>

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 10:39 AM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, Marcos Douglas wrote: > >> On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt >> wrote: >>> >>> >>> >>> On Fri, 14 Nov 2014, Reimar Grabowski wrote: >>> On Thu, 13 Nov 2014 13:26:32 -0300 Marcos D

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

2014-11-14 Thread Reimar Grabowski
On Fri, 14 Nov 2014 14:15:08 +0100 (CET) Michael Van Canneyt wrote: > Connections for databases that have lastinsertID you can call the method > created for this: > > Function GetInsertID: int64; That is actually exactly what I was looking for. I was just too dense to realize that it belongs to

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, silvioprog wrote: On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt wrote: [...] 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 val

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Marcos Douglas wrote: On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt wrote: On Fri, 14 Nov 2014, Reimar Grabowski wrote: On Thu, 13 Nov 2014 13:26:32 -0300 Marcos Douglas wrote: Hi, Take a look in Greyhound project: https://github.com/mdbs99/Greyhound I d

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt < mich...@freepascal.org> wrote: [...] > 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

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

2014-11-14 Thread silvioprog
On Fri, Nov 14, 2014 at 9:53 AM, Reimar Grabowski wrote: > On Thu, 13 Nov 2014 11:33:58 -0300 > silvioprog wrote: > > > I use an own "TPreparedStatement" (equivalent to TSQLQuery prepared + > > Params, but my structure does not uses TDataset) that I get the last > > inserted ID with (pseudo code

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 10:15 AM, Michael Van Canneyt wrote: > > > On Fri, 14 Nov 2014, Reimar Grabowski wrote: > >> On Thu, 13 Nov 2014 13:26:32 -0300 >> Marcos Douglas wrote: >> >>> Hi, >>> Take a look in Greyhound project: https://github.com/mdbs99/Greyhound >> >> I did and could not see how i

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

2014-11-14 Thread Michael Van Canneyt
On Fri, 14 Nov 2014, Reimar Grabowski wrote: On Thu, 13 Nov 2014 13:26:32 -0300 Marcos Douglas 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/Gre

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

2014-11-14 Thread Marcos Douglas
On Fri, Nov 14, 2014 at 10:05 AM, Reimar Grabowski wrote: > On Thu, 13 Nov 2014 13:26:32 -0300 > Marcos Douglas wrote: > >> Hi, >> Take a look in Greyhound project: https://github.com/mdbs99/Greyhound > I did and could not see how it helps. It has a code that working with auto-inc. >> Here you

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

2014-11-14 Thread Reimar Grabowski
On Thu, 13 Nov 2014 13:26:32 -0300 Marcos Douglas 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 Y

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

2014-11-14 Thread Reimar Grabowski
On Thu, 13 Nov 2014 11:33:58 -0300 silvioprog wrote: > I use an own "TPreparedStatement" (equivalent to TSQLQuery prepared + > Params, but my structure does not uses TDataset) that I get the last > inserted ID with (pseudo codes): Sorry, you lost me there, but not a problem (see my response to M

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

2014-11-13 Thread Marcos Douglas
On Thu, Nov 13, 2014 at 11:07 AM, Reimar Grabowski wrote: > Hi, > > first of all I am new to using Lazarus/FPC for database communication. > I have set up my database connection, transaction and queries via the Object > Inspector and all is working as it should. But I have a little problem > get

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

2014-11-13 Thread silvioprog
On Thu, Nov 13, 2014 at 11:07 AM, Reimar Grabowski wrote: > Hi, > > first of all I am new to using Lazarus/FPC for database communication. > I have set up my database connection, transaction and queries via the > Object Inspector and all is working as it should. But I have a little > problem gett

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

2014-11-13 Thread Reimar Grabowski
Hi, first of all I am new to using Lazarus/FPC for database communication. I have set up my database connection, transaction and queries via the Object Inspector and all is working as it should. But I have a little problem getting the PK value of a newly inserted record (the PK field is an auto-