complimentary lookup criterion question
Fairlight
fairlite at fairlite.com
Thu Jul 25 08:50:59 PDT 2013
So if you're doing this with a field of length 20, but the value is only
17, concatenate using & with fields that are cast to the actual field
lengths, not the content lengths?
m->
On Thu, Jul 25, 2013 at 11:34:40AM -0400, Bruce Easton thus spoke:
> I should have also stated that the lengths of the field(s) that are used
> in the lookup (where I call them "myexactkeys") should be exactly the
> same as the length(s) that are used for the portions of the
> corresponding index used (not the length of the fields the portions are
> built against which may very well be the same, but the specified index
> length(s) for the field(s) in the lookup file where those portions must
> match the first part(s) of the lookup key exactly.
>
> Bruce
>
> On 7/25/13 11:23 AM, Bruce Easton wrote:
> > Mark, if you build an index across the fields separately, where the
> > first field(s) is/are the ones that must match exactly to the key you
> > supply, and with the last two fields as modified date then time (where
> > each of those fields have filepro date, time system edits), then you
> > should be able to find the most recently modified records with a key
> > similar to this:
> >
> > lookup lastm=(myfile) k=(myexactkeys&"12/31/299923:59:59") i=A -nl
> >
> > (assuming that your date edit to match this example would be mdyy/ and
> > a system time edit).
> >
> > Since it's not an exact match lookup, you would want to check
> > immediately after the lookup, both
> >
> > If: not lastm
> > Then: 'do something but don't fall to next test where it would be
> > illegal to test lastm(##)
> >
> > and
> >
> > If: lastm(##) ne myexactkeys 'found next less, but no longer
> > matches keys that must match exactly
> > Then: 'do something
> >
> > Similar code could be used for 8-digit dates where you would probably
> > want to set the key value for the year portion of the lookup to be as
> > high as possible (instead of my arbitrarily-high "2999") within the
> > PFCMARK range (by getting the value for PFCMARK and I think you have
> > to subtract one year from that and use that as the two-digit highest
> > year value).
> >
> >
> >
> > Bruce
> >
> >
> >
> > On 7/25/13 10:25 AM, Fairlight wrote:
> >> I need to look up a record from within input processing by two
> >> criterion:
> >>
> >> 1) The absolute value of a field matching (key field lookup)
> >> 2) I need the most recently modified record which matches criterion
> >> #1, as
> >> well as has a particular value in a secondary field.
> >>
> >> I have date and time fields, and there's even an index built across
> >> both,
> >> in descending order for both. Unfortunately, I don't think that does
> >> me a
> >> lick of good, since a key field lookup will be using the index for that
> >> field, not the date/time index.
> >>
> >> I thought about the possibility of a four-field index across all four
> >> fields, but in thinking about it, I have come to the conclusion that
> >> there's no way it's remotely useful, as I won't have a specific date to
> >> use for the second 2/4 of the key field, and I don't think the joint
> >> index
> >> works that way.
> >>
> >> Is there an efficient way to handle this situation? If so, what is it?
> >>
> >> I'm envisioning lots of getnexts and tracking the last @rn that had the
> >> highest value, then when the lookup has exhausted all records which
> >> match
> >> the two specific values, flip back to the record at the most appropriate
> >> @rn value. Is that the only real way to skin this cat?
> >>
> >> mark->
> >
>
>
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> Subscribe/Unsubscribe/Subscription Changes
> http://mailman.celestial.com/mailman/listinfo/filepro-list
>
--
Audio panton, cogito singularis.
More information about the Filepro-list
mailing list