Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread What does .Edit do in ElevateDb?
Sun, Feb 10 2019 12:41 PMPermanent Link

Polywick Studio

What does .Edit do in TEdbQuery?

1. Does it lock the database until you commit?

2. Can you edit other records in same table?

3. If you ExecSQL, I think you need to do Try Commit, Except (RollBack). Is that correct?
Sun, Feb 10 2019 7:07 PMPermanent Link

Raul

Team Elevate Team Elevate

On 2/10/2019 12:41 PM, Polywick Studio wrote:
> What does .Edit do in TEdbQuery?
>
> 1. Does it lock the database until you commit?

Depends on locking protocol. See for more :

https://www.elevatesoft.com/manual?action=viewprop&id=edb2&product=rsdelphiwin32&version=10R&comp=TEDBSession&prop=RecordLockProtocol

and

https://www.elevatesoft.com/manual?action=viewtopic&id=edb2sql&topic=Locking_Concurrency

> 2. Can you edit other records in same table?

Yes. EDB has row locks

> 3. If you ExecSQL, I think you need to do Try Commit, Except (RollBack). Is that correct?

Depends - there is an implicit transaction already for insert/update/delete

See more here:

https://www.elevatesoft.com/manual?action=viewtopic&id=edb2sql&topic=Transactions

Raul
Sun, Feb 10 2019 10:19 PMPermanent Link

Polywick Studio

> 1. Does it lock the database until you commit?
Depends on locking protocol. See for more :
https://www.elevatesoft.com/manual?action=viewprop&id=edb2&product=rsdelphiwin32&version=10R&comp=TEDBSession&prop=RecordLockProtocol
and
https://www.elevatesoft.com/manual?action=viewtopic&id=edb2sql&topic=Locking_Concurrency

If I use Optimisitic row-locking, how do I transmit the info - that the row is locked, to the other party, that it's locked?

> 2. Can you edit other records in same table?
Yes. EDB has row locks

> 3. If you ExecSQL, I think you need to do Try Commit, Except (RollBack). Is that correct?
Depends - there is an implicit transaction already for insert/update/delete
See more here:
https://www.elevatesoft.com/manual?action=viewtopic&id=edb2sql&topic=Transactions
Raul

For example, if it's "Edit", is there a way to show to the other person's app-session, that record is locked for editing by XXXX person?

If it's deleted, is it possible to force a refresh to the other person's desktop?
Mon, Feb 11 2019 2:38 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Polywick


I think Raul has missed one very important fact that you may already be aware of. You cannot edit a TEDBQuery resultset UNLESS its a sensitive result set.

Roy Lambert
Mon, Feb 11 2019 2:38 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Polywick


>If I use Optimisitic row-locking, how do I transmit the info - that the row is locked, to the other party, that it's locked?

You can't without writing your own subsystem. Optimistic row locking is basically last post wins. You'd need to have a separate table holding data on which records have been selected for editing and a UDP system to let everyone know,


>For example, if it's "Edit", is there a way to show to the other person's app-session, that record is locked for editing by XXXX person?

ElevateDB does not currently support this. If you use pessimistic row locking then when the other user tries to edit the row he/she will receive a warning that the row is locked but not who by.

>If it's deleted, is it possible to force a refresh to the other person's desktop?

ElevateDB does not currently support this.

Roy
Mon, Feb 11 2019 7:14 AMPermanent Link

Polywick Studio

- ElevateDB does not currently support this. If you use pessimistic row locking then when the other user tries to edit the row he/she will receive a warning that the row is locked but not who by.

>If it's deleted, is it possible to force a refresh to the other person's desktop?

ElevateDB does not currently support this.

How would I build support for this? Suggestions?
Mon, Feb 11 2019 7:40 AMPermanent Link

Raul

Team Elevate Team Elevate

On 2/11/2019 2:38 AM, Roy Lambert wrote:
> I think Raul has missed one very important fact that you may already be aware of. You cannot edit a TEDBQuery resultset UNLESS its a sensitive result set.

Not really - pretty sure you can edit insensitive results - it just does
not affect original data Smile

Raul

Mon, Feb 11 2019 7:52 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Raul


I've been using temporary tables, memory tables and my own homebrewed string tables for ages so don't remember, I think you're right but my take was editing the underlying table not a temporary table which would not be shared with other users anyway. My opinion was formed because I read several of Polywick's posts before replying Smile

I'm also influenced by EDBManager where you can't edit an insensitive result set

Roy Lambert
Image