Subject Re: INSERT or Update and conflict
Author svanderclock
yes, i was thinking to do like you say, handle the error in the
client interface... but is not a problem for firebird to receive too
lot of error like this (duplicate reccord or lock conflict?)

in case of error, is it better for the stability of firebird to
commit the transaction or rollback it (nothing was inserted or
updated cause of the error)

thanks by advance
stephane



--- In firebird-support@yahoogroups.com, Milan Babuskov <milanb@...>
wrote:
>
> svanderclock wrote:
> > so some time i get some violation of PRIMARY or UNIQUE KEY when 2
> > client do an INSERT because at the same time these 2 clients do
the
> > same insert and unfortunatly one of them go in the violation of
primary
> > key.... I just want to know the best way to handle such
situation ?
>
> It depends on what it means from business logic point of view. If
you
> really want to disallow two records with that value, then just
ignore
> the second insert that failed (maybe write to some log somewhere).
Just
> check the SQL error code to make sure it failed because of
duplicate
> primary key.
>
> If you want both to succeed and have two records, than obviously
you
> need to set some other field to be the primary key.
>
> > now in the same kind, sometime i get 'Update Error - lock
conflict on
> > no wait transaction'. it's when 2 clients try to update the same
row at
> > the same time. here also how to handle such situation ? is it
possible
> > to force the update of the row by the second request instead of
raising
> > a lock conflict?
>
> Yes. Catch the lock conflict and retry from your application code.
Once
> again, checking that it failed because of such error and not
something
> else is desirable.
>
>
> --
> Milan Babuskov
> http://www.flamerobin.org
> http://www.guacosoft.com
>