Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 20 of 22 total
Thread Master Detail newbie
Wed, Jan 7 2009 8:41 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Roy,

<< I'm not sure what you're saying, or what criteria you're applying. The
approach does work. I guarantee that - I have (single and multi-user)
systems in the wild using it. Think of it like a canned sql query. You could
say that doesn't work either.
>>
Sorry, I don't mean your solution is not good, what I mean is it's not going
to work as a live dataset in all aspects because each time another user
changes detail records your filter condition may become out of sync with the
current data. I said it's not going to work only because you mentioned as an
advantage of this method the fact that the datasets continue to be live.

<< All three approaches work.>>
Yes, but they don't produce the same results.

<<The reason I invented this approach to start with was the speed issues
with OnFilterRecord.>>
That's really a big problem in some cases.
I have a problem like this in an EDB application that I didn't manage to
find a solution until now.
It became a big problem when the application started to be used over an
internet connection and since its's a multi-user app and I need a live
result set, it's not easy.

--
Fernando Dias
[Team Elevate]

Wed, Jan 7 2009 9:30 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Fernando


>Sorry, I don't mean your solution is not good, what I mean is it's not going
>to work as a live dataset in all aspects because each time another user
>changes detail records your filter condition may become out of sync with the
>current data. I said it's not going to work only because you mentioned as an
>advantage of this method the fact that the datasets continue to be live.

Its live in the sense that any edits are reflected back to the dataset ie live as in not a canned sql dataset. Its not live in that changes by another cursor are not shown, in that respect its like a canned dataset.

><< All three approaches work.>>
>Yes, but they don't produce the same results.

True

><<The reason I invented this approach to start with was the speed issues
>with OnFilterRecord.>>
>That's really a big problem in some cases.
>I have a problem like this in an EDB application that I didn't manage to
>find a solution until now.
>It became a big problem when the application started to be used over an
>internet connection and since its's a multi-user app and I need a live
>result set, it's not easy.

Sure aint. If you do come up with a brilliant solution let us know.

Roy Lambert [Team Elevate]
Wed, Jan 7 2009 10:35 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Roy,

> Sure aint. If you do come up with a brilliant solution let us know.

I'm waiting for Tim to come up with that brilliant solution Smiley
Some time ago I asked him if there is any possibility, in a future EDB
release, of having sensitive result sets with queries containing columns
defined as query expressions, and he said he was going to see what can
be done about that, so I hope we will find a solution so we can have it
in a near future - but only in EDB, I'm afraid.

--
Fernando Dias
[Team Elevate]
Wed, Jan 7 2009 11:13 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Fernando

>I'm waiting for Tim to come up with that brilliant solution Smiley
>Some time ago I asked him if there is any possibility, in a future EDB
>release, of having sensitive result sets with queries containing columns
>defined as query expressions, and he said he was going to see what can
>be done about that, so I hope we will find a solution so we can have it
>in a near future - but only in EDB, I'm afraid.

1. I'm not sure I can get my head round that one

2. I only use DBISAM in the legacy stuff now so only ElevateDB is good enough for me.

Roy Lambert
Wed, Jan 7 2009 1:09 PMPermanent Link

silven
Roy Lambert <roy.lambert@skynet.co.uk> wrote:

Fernando

>I'm waiting for Tim to come up with that brilliant solution Smiley
>Some time ago I asked him if there is any possibility, in a future EDB
>release, of having sensitive result sets with queries containing columns
>defined as query expressions, and he said he was going to see what can
>be done about that, so I hope we will find a solution so we can have it
>in a near future - but only in EDB, I'm afraid.

1. I'm not sure I can get my head round that one

2. I only use DBISAM in the legacy stuff now so only ElevateDB is good enough for me.




Thanks everyone for the all the replies and different solutions... I already provide my client solution  a bit sluggish but a quick patch.

I will try the OnFilterRecord event to see if this will speed thinks up a bit... since the number of items in the Master table will not be huge maybe 100 - 200 items at most ,  I hope it
will be sufficient.


Fernando,
I have added a line similar to this one Accept := DetailTable.Locate('ID',MasterTable.FieldByName('ID').AsInteger,[]); inside the OnFilterEvent (method) of the MasterTable and it
seems to be producing the proper results.  Is there a better way?


I will do more test.


Thanks,

Silven






Roy Lambert
Wed, Jan 7 2009 1:55 PMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Silven,

<< I have added a line similar to this one Accept :=
DetailTable.Locate('ID',MasterTable.FieldByName('ID').AsInteger,[]);
inside the OnFilterEvent (method) of the MasterTable and it
 seems to be producing the proper results.  Is there a better way?>>

It's ok as far as DetailTable is not the same component you are using to
display detail records in the grid. You may also use FindKey instead of
Locate - I believe it may be slightly faster (I'm not sure it's
noticeable - you may test it to see if there is any difference).

--
Fernando Dias
[Team Elevate]
Wed, Jan 7 2009 2:11 PMPermanent Link

silven
Fernando Dias <fernandodias.removthis@easygate.com.pt> wrote:

Silven,

<< I have added a line similar to this one Accept :=
DetailTable.Locate('ID',MasterTable.FieldByName('ID').AsInteger,[]);
inside the OnFilterEvent (method) of the MasterTable and it
 seems to be producing the proper results.  Is there a better way?>>

It's ok as far as DetailTable is not the same component you are using to
display detail records in the grid. You may also use FindKey instead of
Locate - I believe it may be slightly faster (I'm not sure it's
noticeable - you may test it to see if there is any difference).

--
Fernando Dias
[Team Elevate]



Fernando,

Thanks for the help...

Yes I did follow your advice and use a different component.  

Thanks,
Silven
Thu, Jan 8 2009 7:40 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< 1. I'm not sure I can get my head round that one >>

It's a way of doing "lookups" in query expressions while still maintaining a
sensitive result set.

For example:

SELECT CustNo,
(SELECT Company FROM Customer WHERE CustNo=Orders.CustNo) AS Company,
OrderNo
FROM Orders
ORDER BY CustNo

Once I get such a feature working, you will then have a read-only column
called Company in a sensitive result set.  Right now such a query will
always generate an insensitive result set.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Jan 8 2009 8:14 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


If you achieve that does it open the way to virtual columns with lookups in the catalog???????

Roy Lambert
Thu, Jan 8 2009 12:08 PMPermanent Link

"Eduardo [HPro]"
Tim

This is only for ElevateDB but does not work on DBISAM.

Eduardo

« Previous PagePage 2 of 3Next Page »
Jump to Page:  1 2 3
Image