× 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.



midrange-l-request@xxxxxxxxxxxx wrote:

>   7. Re: Re: TV Ad (I'm the man) (Steve Richter)
>
>On 10/18/05, qsrvbas@xxxxxxxxxxxx <qsrvbas@xxxxxxxxxxxx> wrote:
>>
>> Without knowing something about why you were told CL was preferred, it's 
>> hard >to say a lot.
>
>75% of the work is done in very portable sql procedures.  Some of the
>crazy Russian emigres in the shop modified the RUNSQLSTM command to
>run an sql statement as a variable passed to a CL command.  So they
>run a lot of SQL from CL.  They dont know RPG, esp RPG FREE and there
>is no good reason for them to learn it.

Steve:

Given this as a fundamental element of the app, I'd have to disagree and say 
that this is a very specific and good reason for them to learn RPG. Or C or 
COBOL, whatever. This is essentially equivalent to saying that there's no good 
reason to learn anything but Windows command language and SQL on a PC or the 
command/scripting language and SQL on a Unix system or any single lenguage and 
SQL.

>> On my personal system, e.g., CL is definitely preferred because I don't have 
>> a >license for the other compilers. I have a CL program that builds a nice 
>> looking list >of the records in a physical file and lets you scroll through 
>> them, using DSM APIs. >I have another that creates DSM windows that can be 
>> moved _and_ sized by the >user via DSM APIs. CL is surprisingly flexible.
>
>your calling the "qsn" ile procedures from CL? how do you handle the
>api error structure?

Commonly via escape message handling by passing in x'00000000', but handling 
the return structure itself is no big deal if needed. MONMSG and basic message 
handling just is a personal preference in CL for me in my own utilities.


>> >which reinforces my point that IBM is neglecting the software side of
>> >the platform. You advise against using CL because of its limitations.
>> >If CL could call ILE procedures in a better way it would be much
>> >improved.
>>
>> As for a "better way", most often it's only for specific types of APIs that 
>> a difficulty comes up. E.g., if you write the procedure yourself and expect 
>> that it might be called from CL on a release below V5R3, you won't code 
>> requirements to pass by value unless it's a pointer and CL can simply pass 
>> the variable by reference. Likewise, you won't code requirements for data 
>> structures that include embedded packed fields. (At worst, you can code an 
>> additional procedure interface that CL _can_ call and that wrappers the 
>> parameters for another procedure in the module.)

>correct me if I am wrong, but CALLPRC does not map the CL variables to
>the data type of the ILE procedure.  It just passes the value from the
>CL program by address.  Even pass by value does not map the value.  If
>so, that is a data overflow bug waiting to happen.

True, there is no prototyping. And it seems _possible_ for IBM to adapt *CMDs 
to provide a form of prototyping, perhaps by extension of the mechanism that 
allows the developer to name a REXX procedure as the CPP for example; i.e., 
name an ILE procedure and create a special *CMD object that works only in ILE 
CL programs perhaps. That'd certainly be nice. I won't argue against it. 
Prototyping isn't a requirement though I'd like it.

And AFAIK, callp doesn't map the variables to the type needed by the proc in 
RPG either, at least not by itself. (That's an attempt to be practically 
accurate.) The mapping is done by combining that with the coding of a procedure 
prototype to define the mapping rules. If you code the prototype wrong, you'll 
get just as a big a mistake as if you pass a *DEC (5 0) where a *DEC (3 0) is 
needed in CL. Either way -- coding the prototype or coding the CL variable -- 
the error is possible.

And that touches another area where CL could be improved -- /*COPY members.

Tom Liotta


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.