[Lazarus] What is a TSQLTransaction and why do I need one?

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Fri Dec 10 11:24:26 CET 2010


Michael Van Canneyt wrote:

>>> Well, you always need a transaction. Without a transaction, Postgres
>>> will do nothing, ever.
>>>
>>> I assume you are used to the fact that postgres automatically creates an
>>> transaction for you. With Sqldb you have to do this yourself.
>>
>> Please excuse me for threading onto a fairly old message. In the 
>> specific case of PostgreSQL, if I use SELECT * FROM pg_stat_activity 
>> to examine backend state I can see that a Lazarus TSQLQuery, i.e. that 
>> has to have an associated transaction object, is explicitly marked as 
>> being in a transaction, while other methods of access (Delphi+BDE, 
>> PGAdmin3) are not.
> 
> This is one of the things we must still address: close the transaction 
> after
> the data has been fetched. (or rather: keep data available in case the 
> transaction is closed)

I've not had a chance to investigate exactly what the backend thinks 
Delphi etc. is doing, but long-lived connections caused in particular by 
db-aware components could be bad news when it comes to server pooling, 
failover and so on. Long-lived transactions definitely will be.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list