On Wed, 24 Nov 2010, Alexsander Rosa wrote:

Could you point which files should be patched?

I think it could be done by simply patching sqldb.pp itself.

My suggestion:

1. Add an option 'autotransaction' to TSQLConnection. Best in the form of
   TSQLConnectionOption = (coAutoTransaction);
   TSQLConnectionOptions = set of TSQLConnectionOption;
   Property TSQLConnection.ConnectionOptions = TSQLConnectionOptions
2. Add code to TSQLQuery to automatically create a TSQLTransaction
   (owned and available as function from TSQLConnection)
   if none is assigned explicitly and coAutoTransaction is in 
TSQLConnection.ConnectionOptions.
(create an internal TSQLAutoTransaction component, and create that) 3. If such a transaction is created (you can check if the class of the transaction is TSQLAutoTransaction),
   do a commit after all Executed statements.

If it is done like this, the behaviour can be refined later on with more 
options.

Michael.


2010/11/24 Michael Van Canneyt <[email protected]>


      On Wed, 24 Nov 2010, Alexsander Rosa wrote:

            But it is transparent to the libpq programmer; why it's not 
transparent with sqldb?


Correction: it can be transparant in libpq.

But we can make it so in SQLDB.

The SQLDB model is in fact modeled after Firebird. Firebird offers more control 
over the transactions.

We did not want to take away this possibility, so we modeled sqldb on the most 
powerful RDBMS. This adds some overhead for the others.

What we neglected to do is add what Martin added: offer a less intrusive way 
for the programmer to use it (i.e. create a default transaction in the
background if none is specified, and close the transaction once the data is 
read).

But we'll do that too, all in good time.

If someone is in a hurry, patches are definitely accepted.

Michael.


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




--
Atenciosamente,
Alexsander da Rosa
Linux User #113925

"Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude."
-- Barry Goldwater

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to