Page 1 of 2

DcBrowse - Tagging

Posted: Sun Jul 08, 2012 11:09 am
by RDalzell
Roger,

The attached program functions properly when only a single user is on, but when multiple users login, the speed really degrades (ITEMSELECTED).
When performing the ITEMSELECTED of a record, as single user within the speed of the mouseclick, when multiuser, as long as 15 seconds elapse before the data of the ITEMSELECTED is returned.

It appears to be something with the tagging system as other browses (without tagging) do not display a similar speed reduction.

I can add the tag field into the database, but was concerned if more than one person was performing the data consolidation at the same time, the wrong records would be updated.

A push in the right direction would be appreciated.

Rick

Re: DcBrowse - Tagging

Posted: Sun Jul 08, 2012 7:02 pm
by rdonnay
Record tagging requires locking the record.
It appears that there must be something wrong here.
I'm travelling the next few days but I'll look at this tomorrow.

Re: DcBrowse - Tagging

Posted: Wed Jul 25, 2012 7:32 pm
by RDalzell
Hi Roger,

Just a gentle reminder for a review.
I have commented out the TAGENABLE and the browse speed is great.

Thanks,
Rick

Re: DcBrowse - Tagging

Posted: Thu Jul 26, 2012 12:48 am
by skiman
Hi,

Using a field to TAG looks as a bad idea to me. In a multi-user environment, you can never be sure who has tagged the record.

I'm tagging with an array, in which I put the record numbers. In the ITEMSELECTED you call a function which checks if the record number is in your array or not. I never used TAGENABLE, but it could simplify some things.

Roger, maybe you can add an array as a VAR to the browse object? This way the TAGENABLE could use the internal array, and no field has to be added to the database.

Re: DcBrowse - Tagging

Posted: Thu Jul 26, 2012 6:04 am
by RDalzell
Hi Chris,

Actually that is the another way which Roger's TAG functions, using DC_RecTagArray().

Somewhere it appears that something is really slowing the process down.
It is only noticeable on a network and when more than one person is in the application.

I will look at your suggestion with ITEMSELECTED. But I always like to use a Roger vs. a Rick solution.

Rick

Re: DcBrowse - Tagging

Posted: Thu Jul 26, 2012 6:53 am
by rdonnay
Chris -

I never use field tagging. I agree that it's a bad idea.
The tagging system uses a public array for databases and an additional array element for arrays.

I don't know why I made the comment that record tagging requires record locking.
It's just a matter of adding or removing record numbers from an array.
I forgot about this when I was travelling. I'll look at it today.

Roger

Re: DcBrowse - Tagging

Posted: Thu Jul 26, 2012 7:36 am
by rdonnay
Rick -

I am trying to understand what is happening here.
I makes no sense to me that just double-clicking or hitting enter (to cause an ItemSelected event) would be affecting by record tagging.

We need to put some debugging in _DCXBROW.PRG to figure out what's happening.

Let me know when I can talk to you about this.

Roger

Re: DcBrowse - Tagging

Posted: Thu Jul 26, 2012 1:34 pm
by RDalzell
Roger,

Everything appears to function properly (speed) when using on a non-networked desktop, as well as when only one user is logged into the application on a networked system. However as soon as another user logs into the application then the when a user doubleclicks for ITEMSELECTED, the application crawls for several minutes before the ITEMSELECTED returns the value. If I comment out the TAGENABLE, the ITEMSELECTED speed is excellent.

Rick

Re: DcBrowse - Tagging

Posted: Sat Jul 28, 2012 10:29 am
by rdonnay
Rick -

Try this updated dclipx.dll.
I made some changes to the tag() method.

http://donnay-software.com:8080/donnay/dclipx.zip

Roger

Re: DcBrowse - Tagging

Posted: Tue Jul 31, 2012 5:41 am
by RDalzell
Roger,

I installed the update last evening and a preliminary test appears that the problem is resolved.
I will verify today and advise.

As Always,
Thank You...

Rick