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



That sounds like something very interesting. Do you have some examples
for us mere mortals.

>>> -----Original Message-----
>>> From: Nelson C. Smith [mailto:ncsmith@gate.net]
>>> Sent: Friday, August 13, 1999 4:48 AM
>>> To: MIDRANGE-L@midrange.com
>>> Subject: Re: Floating Point Question
>>> 
>>> 
>>> Yes, I have a big alpha field containing the result of a 
>>> substring out of a
>>> record data structure.  It contains whatever real data was 
>>> in the record at
>>> the field position.  The QADBIATR file tells me the data type, size,
>>> location, etc, of the field, which controls the subst 
>>> parameters.  It is
>>> being used to create Where statements on the fly inside a 
>>> single generic SQL
>>> copy member used for all files. Once I have the actual 
>>> field data in a
>>> generically-named floating point field, I should be able to 
>>> make a key out
>>> of it. i.e. "WHERE pi = 3.14" .  I think the basing pointer 
>>> method will do
>>> just what I need.  Thanks!
>>> 
>>> I didn't use that method or the movel method for packed 
>>> fields because I
>>> didn't want to have to choose between 900 different packed 
>>> field sizes.  For
>>> them, I just counted bits and put the numbers, decimal point, & sign
>>> directly into an alpha field.  Every other type seems to 
>>> work ok with the
>>> Movel (I haven't gotten to blobs yet, but I assume they 
>>> will work like
>>> varchars).
>>> 
>>> I haven't worked with floating point enough to know what 
>>> they really look
>>> like in hex. I don't have any fields I actually need at the 
>>> moment, but I
>>> wanted my generic procedure to be able to handle any field 
>>> that comes at it.
>>> The floating point data types are currently starred-out as 
>>> the only ones it
>>> can't handle.  I think this will fix it.  Thanks again.
>>> 
>>> BTW Barbara, the only reason I got into all this is due to 
>>> your tip of a
>>> month or two ago (about using procedure pointers as a 
>>> system pointer), that
>>> allowed me to build completely dynamic SQL IO modules and 
>>> triggers.  I now
>>> have a single trigger and a single IO module that handle 
>>> any file defined to
>>> them.  They fire up the specific service program containing 
>>> the specific
>>> file-handling procedure, find the procedure's address and 
>>> then call the
>>> procedure for the actual processing.  Pointers to the file 
>>> data and trigger
>>> buffers get passed all up and down the call stack and the 
>>> whole thing works
>>> so smooth I can hardly believe it.  Is this the kind of 
>>> stuff ya'll get to
>>> play with at the lab all the time?
>>> 
>>> I currently have about 40 files in production using them, but I keep
>>> tinkering with them, of course.  I can foresee someday 
>>> eliminating all
>>> external F-specs from my programs.  Of course, they just 
>>> get replaced by
>>> externally-defined data structures, but at least the files 
>>> are out of the
>>> programs.  I've always preached that "programs don't need 
>>> files, programs
>>> need data".  When you eliminate the files, you eliminate 
>>> about 80% of the
>>> maintenance problems. Thanks to you, I'm finally getting 
>>> there.  The last
>>> few frontiers I'm playing with are floats and blobs and 
>>> they aren't holding
>>> back real production, yet. I'm still waiting to see what 
>>> the trigger buffer
>>> looks like with a few blobs in it. Will the whole field be 
>>> there or just
>>> some kind of pointer to it?
>>> 
>>> You've created a monster here....
>>> 
>>> -----Original Message-----
>>> From: bmorris@ca.ibm.com <bmorris@ca.ibm.com>
>>> To: undisclosed-recipients:; <undisclosed-recipients:;>
>>> Date: Thursday, August 12, 1999 9:32 AM
>>> Subject: Re: Floating Point Question
>>> 
>>> >----------------------------- B -----------------------------
>>> >If you mean that you have 8 bytes containing an actual 
>>> floating point
>>> >value, use a based 8F variable, and set its basing pointer 
>>> to the address
>>> >of the char field.
>>> >
>>> >D floatVal        s              8f
>>> >D basedFloat      s              8f   based(pFloat)
>>> >D rec             s           1000a
>>> >
>>> > * Get the floating point value at offset "off" in field "rec"
>>> > * into the float field "floatVal"
>>> >C                   eval     pFloat = %addr(rec) + off
>>> >C                   eval     floatVal = basedFloat
>>> >C                   seton
>>> >
>>> >I'm guessing the second case is correct.  If so, I'd use 
>>> this technique for
>>> >all the types, using a based data structure with a 
>>> subfield starting at
>>> >position 1 for each possible type.  Set your basing 
>>> pointer to the address
>>> >of the record + the offset, then just assign from one of the based
>>> subfields.
>>> >
>>> >Barbara Morris
>>> >
>>> 
>>> +---
>>> | This is the Midrange System Mailing List!
>>> | To submit a new message, send your mail to 
>>> MIDRANGE-L@midrange.com.
>>> | To subscribe to this list send email to 
>>> MIDRANGE-L-SUB@midrange.com.
>>> | To unsubscribe from this list send email to 
>>> MIDRANGE-L-UNSUB@midrange.com.
>>> | Questions should be directed to the list owner/operator: 
>>> david@midrange.com
>>> +---
>>> 
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.