The IOCTL() function is very useful to find out things about a file but if
you try to use it on a variable that is not a file variable then the
program will drop to the debugger.

The jBASE-way to programmatically determine if it is working with a file
variable is to use the ON ERROR clause in an OPEN statement, e.g.

OPEN filename TO filevar ON ERROR
   CRT filename : ' is not a file variable'
END

On Wed, Aug 31, 2016 at 11:39 PM, Jim Idle <[email protected]> wrote:

> Google emails is fickle some times:
>
> http://www.jbase.com/r5/knowledgebase/manuals/3.0/
> 30manpages/man/sup22_IOCTL.htm
>
> Jim
>
> On Thu, Sep 1, 2016 at 11:39 AM, Jim Idle <[email protected]> wrote:
>
>> I think that that is still a pretty poor way to code it, but if they have
>> it already, then recoding the logic to do better initialization is probably
>> too much work.
>>
>> However, I seem to remember coming across this in the dim and distant
>> past. What you need is to use the IOCTL function, that will tell you
>> details about the variable if it is a file variable. If it is not a file
>> variable (uninitialized or 0 or "" depending on emulation flavor) then it
>> either tells you that, or it returns false. Easy to use and the
>> documentatin is here:
>>
>>
>> On Thu, Sep 1, 2016 at 9:26 AM, 'Ed Clark' via jBASE <
>> [email protected]> wrote:
>>
>>> There is a thread on the mvdbms google group asking about it. I think
>>> the original requestor was asking because they are doing a migration and
>>> keep stumbling over
>>>   IF FILEVAR=“” THEN….
>>> which worked on the old platform but aborts on the new one if the file
>>> is already open. Probably something related to COMMON which is initialized
>>> to to an empty string or 0 in some places and unassigned in other. If
>>> you’re keeping a file in COMMON to avoid repeated OPENs, you need to check.
>>>
>>> The universe DESCRINFO distinguishes between database files and
>>> sequential files as well as between strings, arrays, and unassigned
>>> variables. I guess you could write a generalized logging procedure that
>>> could take either a hashed or sequential file as a parameter and write
>>> appropriately, or a string or empty variable and return the logged message
>>> in that.
>>>
>>> On Aug 31, 2016, at 6:41 PM, Jim Idle <[email protected]> wrote:
>>>
>>> I can't think how that would possibly be useful within a reasonably
>>> designed program - why do you need it, out of curiosity?
>>>
>>> The only way I know of is to write a trivial C function to do the same.
>>>
>>> Jim
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Sep 1, 2016 at 4:35 AM +0800, "'Ed Clark' via jBASE" <
>>> [email protected]> wrote:
>>>
>>> universe has a basic function DESCRINFO that returns the “type” of a 
>>> variable—it is a simple variable, a file variable, a select list, assigned 
>>> or unassigned, and so forth.
>>>> Is there an equivalent in jBase?
>>>>
>>>> --
>>>> --
>>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>>
>>>> To post, send email to [email protected]
>>>> To unsubscribe, send email to [email protected]
>>>> For more options, visit this group at 
>>>> http://groups.google.com/group/jBASE?hl=en
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "jBASE" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>> --
>>> --
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>
>>> To post, send email to [email protected]
>>> To unsubscribe, send email to [email protected]
>>> For more options, visit this group at http://groups.google.com/group
>>> /jBASE?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> --
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>
>>> To post, send email to [email protected]
>>> To unsubscribe, send email to [email protected]
>>> For more options, visit this group at http://groups.google.com/group
>>> /jBASE?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to [email protected]
> To unsubscribe, send email to [email protected]
> For more options, visit this group at http://groups.google.com/
> group/jBASE?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to