Already mentioned, changing a UniBasic SELECT to an EXECUTE "SELECT..." is
changing the very fundamental definition of what you're doing.  The UniBasic
SELECT is, for lack of a better way to define it, a "delayed" select that
does not actually go through the file right then and actually select the
keys.  It pretty much just creates a pointer to the file that is moved with
each READNEXT, or whatever command.  The EXECUTE "SELECT..." is a fully
finished command that creates the select list in whatever select queue it
has been directed "to".  By default, without a "TO" clause, it's select list
0.  Personally, I like the equate option suggested but myself, I'd just use
the actual constant numbers since equates and variables are a lot more
typing and don't REALLY add anything to readability or documentation of the
code.

BobW

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman
Sent: Friday, July 29, 2011 3:53 PM
To: U2 Users List
Subject: Re: [U2] UniBasic SELECT

Thanks to Larry and Wol for writing.

Both ways work to get rid of the red warnings but both ways I still get the
pesky SQL+ prompt at the end.

I only want to change the Basic SELECT to execute "SELECT..." because this
technique makes the Rocket BDT IDE red warning flag go away.  When I started
migrating programs to BDT, I found that changing CLEARSELECT ALL to execute
"CLEARSELECT ALL" was an easy clean fix to the IDE warnings.

--Bill



-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wols Lists
Sent: Friday, July 29, 2011 6:37 PM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] UniBasic SELECT

On 29/07/11 23:14, Bill Brutzman wrote:
> In an inherited  legacy app, I have a few commands like
> 
>       LIST.1 = 1 
>       LIST.2 = 2 
>       LIST.3 = 3 
>       LIST.4 = 4
> 
>       SELECT  F.ICC  to  LIST.2
>       SELECT  F.ICC  to  LIST.3
>       SELECT  F.ICC  to  LIST.4
> 
> And then LIST.2   LIST.3   and  LIST.4  show up in loops such as ...
> 
>       loop
>          readnext CLASS.KEY from LIST.2 else EOP = 1 until EOP = 1 DO
> 
>        read R.ICC from F.ICC, CLASS.KEY else go Get.Next.Class.Key
>               .
>       .
>         Repeat
> 
> The red warning marks on the right of the Rocket BDT IDE indicate...
"expecting INTEGER, found LIST.2"
> Notwithstanding the red warnings, the program compiles and runs ok.
> 
> When I try to encapsulate these commands with
> 
>       Execute " SELECT  F.ICC  to  LIST.2"
> 
> The red warnings go away... the program runs ok but, I get a SQL+ prompt
after the report prints which can be resolved by just hitting <Enter>.
> 
> I do not want my end users to have to deal with (for them) an unusual SQL+
prompt.
> 
> Suggested work-arounds to make the SQL+ prompt go away would be
appreciated.

Because SELECT F.ICC to LIST.2 in basic is COMPLETELY different to "SELECT
F.ICC to LIST.2" in RETRIEVE.

The original "expecting integer" warning is probably because the compiler is
expecting a literal, not a variable. But by enclosing it in quotes and
wrapping it in an EXECUTE, you've just converted LIST.2 from being an
integer variable to a string literal - a completely different beast.

Try instead changing "LIST.2 = 2" to "EQUATE LIST.2 TO 2" etc, and see if
that gets rid of all your warnings.
> 
> --Bill

Cheers,
Wol
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1390 / Virus Database: 1518/3796 - Release Date: 07/29/11

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to