Subject | Re: [IBO] IBOQuery with record locking |
---|---|
Author | earnesttse |
Post date | 2008-03-20T07:14:41Z |
If it is true, how can I design a multi-user database application?
In my case, the data which edited and posted in a transcation can't
be read/view by other user. If the record in the first record of
master table, the IBOQuery of detail table can't be open.
Thanks for help!
Earnest
In my case, the data which edited and posted in a transcation can't
be read/view by other user. If the record in the first record of
master table, the IBOQuery of detail table can't be open.
Thanks for help!
Earnest
--- In IBObjects@yahoogroups.com, Hans <hhoogstraat@...> wrote:
>
> Think that is in FB database design
>
> ----- Original Message -----
> From: "earnesttse" <earnesttse@...>
> To: <IBObjects@yahoogroups.com>
> Sent: Wednesday, March 19, 2008 10:43 PM
> Subject: Re: [IBO] IBOQuery with record locking
>
>
> > Dear Jason,
> >
> > As I know, if one user edited and posted a record in a
transaction,
> > beofore the user to commit the transaction, other user can see the
> > latest commited version of record, right?
> >
> > My problem is that in this case the secord can't be read or
opened by
> > other user. The second user want to read the record only, not to
edit
> > or delete. When the second user to read the record, IBO raise a
> > record lock conflict error.
> >
> > I tried this:
> >
> > 1. User A: StartTransaction -> Insert one master record or one
detial
> > record -> post both master and detail record -> comit the
transaction
> > 2. User B can read about records.
> > 3. User A: StartTransaction -> edit master record -> edit detail
> > record and post it
> > 4. User B: open IBOQuery of master table without problem
> > 5. User B: open IBOQuery of detail table -> this IBOQuery can't be
> > open untill User A call commit or rollback
> >
> > I found that the system stoped at line 6321 of IBODataset.pas:
> > InternalDataset.BufferRowNum := FCurRowNum + 1; After User A call
> > commit or rollback, the system will run again.
> >
> > My question is: why the code (InternalDataset.BufferRowNum :=
> > FCurRowNum + 1;) causes record locking conflict?
> >
> > Thanks for help!
> >
> > Earnest
> >
> >
> >
> > --- In IBObjects@yahoogroups.com, "Jason Wharton" <supportlist@>
> > wrote:
> >>
> >> It sounds like what you are asking for is a dirty read.
> >> This is not something that InterBase or Firebird allows.
> >> This is also something that is not desirable.
> >> If you want another user to be able to see changes from another
> > user then
> >> they have to be committed and in a tiCommitted isolation.
> >>
> >> Jason Wharton
> >>
> >> > -----Original Message-----
> >> > From: IBObjects@yahoogroups.com
[mailto:IBObjects@yahoogroups.com]
> > On
> >> > Behalf Of earnesttse
> >> > Sent: Wednesday, March 19, 2008 7:01 PM
> >> > To: IBObjects@yahoogroups.com
> >> > Subject: [IBO] IBOQuery with record locking
> >> >
> >> >
> >> > Hello, I have a record locking problem needing your help!
> >> >
> >> > I have master/detail tables to record sale invoice. I call
> >> > IB_Database.StatTransaction before editing master reocrd. When
one
> >> > user is editing a record of detial, other user can't read the
> > edited
> >> > record, system will wait until the record has been cancelled or
> >> > posted.
> >> >
> >> > Is there any way to allow the second user to view the edited
> > record
> >> > without waiting the first user completed editing?
> >> >
> >> > I read the book of Helen: The Firebird Book. I found that in
page
> >> > 552: In Firebird, all updates are at row level ... When a
> > transaction
> >> > submits a request to update a row; the old version of that row
> >> > remains visible to all transactions. Writers do not block
readers.
> >> >
> >> > Is there anything I missed?
> >> >
> >> > I am using Delphi 2007, IBO 4.8.7, IBOQuery, AutoCommit=True,
> >> > Isolation=tiCommitted.
> >> >
> >> > Your prompt reply is highly appreciated!
> >> > Thanks for help!
> >> >
> >> >
> >> > Earnest
> >>
> >
> >
> >
> > ------------------------------------
> >
> >
______________________________________________________________________
_____
> > IB Objects - direct, complete, custom connectivity to Firebird or
> > InterBase
> > without the need for BDE, ODBC or any other layer.
> >
______________________________________________________________________
_____
> > http://www.ibobjects.com - your IBO community resource for Tech
Info
> > papers,
> > keyword-searchable FAQ, community code contributions and more !
> > Yahoo! Groups Links
> >
> >
> >
>