× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks to all that replied...Michael, you were right on with my
mis-conception of the offsets being actual positions.  Thanks for the link
to the sample, I am going to try that right now.

This is one of the reasons I love this list...
Eric

----- Original Message -----
From: "Michael Naughton" <mnaughton@xxxxxxxxxxxx>
To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
Sent: Monday, September 22, 2003 2:11 PM
Subject: Re: Trigger question


> I got something like this working, using Pete Hall's template at
> http://www.martinvt.com/Code_Samples/Trigger/trigger.html
>
> I think your problem may be that the offsets in the buffer are not numbers
> of bytes from the beginning of the buffer but differences between the
> memory addresses of the "old" and "new" data and the beginning of the
> buffer. Thus, you find the old data by looking at the memory address is
> calculated as the address of the buffer plus the "old" offset; similarly
> with the new data.
>
> If you set up externally described (by the file that the trigger is
> attached to), pointer-based, prefixed data structures, then things get
> pretty easy to work with - you set the basing pointers using the above
> logic, and then you can refer to field names just as if you had read in
> the record (of course, you need the prefixes to distinguish between the
> old and new versions). I'm a long way from being an expert on these, but I
> think trying to use %subst is heading in the wrong direction. . . .
>
> I think if you look at the template, this will all make sense.
>
> hth
>
> PS: As I discovered, the ALWREPCHG(*YES) is crucial
>
>
>
> RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> writes:
> >I am not performing any data access to any files but am now having
> >problems
> >replacing the new output version of the file to the buffer.  Here is how
I
> >am getting the after image before attempting to fill in the field:
> >
> >C                   Eval      OUTDS = %subst(PARM1:NEWOFF+1:NEWLEN)
> >*
> >This is retrieving the data correctly *
> >
> >And here is how I am attempting to replace the new version of the file
> >into
> >the buffer.  I am getting a data mapping error.  I know the starting
> >position is wrong but how do I get the correct starting position for the
> >%REPLACE?  The OUTDS is an external datastructure of the "after" image.
> >
> >C                   EVAL      PARM1 =
> >%REPLACE(OUTDS:PARM1:NEWOFF+1:NEWLEN)
> >
> >Thanks...
> >Eric
>
>
> Mike Naughton
> Senior Programmer/Analyst
> Judd Wire, Inc.
> 124 Turnpike Road
> Turners Falls, MA  01376
> 413-863-4357 x444
> mnaughton@xxxxxxxxxxxx
>
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.