[fpc-pascal] Re: How to insert a record and get the primary key with sqldb?
Felipe Monteiro de Carvalho
felipemonteiro.carvalho at gmail.com
Sat Oct 22 20:10:16 CEST 2011
On Sat, Oct 22, 2011 at 5:42 PM, Michael Van Canneyt
<michael at freepascal.org> wrote:
> Just a use a TSQLQuery:
Are you sure that it is really like that? My code is virtually the
same as yours and I already checked everything I could come up with.
Using the final "as res;" or not, checked that the sequence exists in
the database, but I still get this error:
Error: <b>Preparation of query failed. (PostgreSQL: ERROR: column
"GameSession_SessionId_seq" does not exist
LINE 1: prepare prepst2 as SELECT nextval("GameSession_SessionId_se...
This code:
SQLGameSession := TSQLQuery.Create(nil);
SQLGameSession.Transaction := DBComm.SQLTransaction;
SQLGameSession.Database := DBComm.PQConnection;
SQLGameSession.FieldDefs.Add('SessionId', ftLargeint);
SQLGameSession.FieldDefs.Add('GameEvent', ftLargeint);
SQLGameSession.FieldDefs.Add('TableId', ftInteger);
OPDebugLn('[TGameSessionComm.CreateSessionResponse] Obtaining New
Primary Key');
SQLGameSession.SQL.Text:='SELECT
nextval("GameSession_SessionId_seq") as res;';
SQLGameSession.Open;
FSessionId := (SQLGameSession.Fields[0] as TLargeIntField).AsLargeInt;
SQLGameSession.Close;
The transaction and connection cannot be wrong because they are the
same ones used for all other transactions which work fine.
--
Felipe Monteiro de Carvalho
More information about the fpc-pascal
mailing list