DcBrowse - Tagging

This forum is for eXpress++ general support.
Message
Author
User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

DcBrowse - Tagging

#1 Post 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
Attachments
Ptp117.zip
(5.33 KiB) Downloaded 604 times

User avatar
rdonnay
Site Admin
Posts: 4729
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: DcBrowse - Tagging

#2 Post 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.
The eXpress train is coming - and it has more cars.

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: DcBrowse - Tagging

#3 Post 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

skiman
Posts: 1185
Joined: Thu Jan 28, 2010 1:22 am
Location: Sijsele, Belgium
Contact:

Re: DcBrowse - Tagging

#4 Post 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.
Best regards,

Chris.
www.aboservice.be

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: DcBrowse - Tagging

#5 Post 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

User avatar
rdonnay
Site Admin
Posts: 4729
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: DcBrowse - Tagging

#6 Post 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
The eXpress train is coming - and it has more cars.

User avatar
rdonnay
Site Admin
Posts: 4729
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: DcBrowse - Tagging

#7 Post 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
The eXpress train is coming - and it has more cars.

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: DcBrowse - Tagging

#8 Post 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

User avatar
rdonnay
Site Admin
Posts: 4729
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: DcBrowse - Tagging

#9 Post 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
The eXpress train is coming - and it has more cars.

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: DcBrowse - Tagging

#10 Post 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

Post Reply