Mike,
Here is what I am attempting to do:
fxtxhqcolumn       = TXHqLastName                             TEXT  
FxTXHqTable        = TXHqBetaXi                               TEXT
 The table name and column name are passed as parameters to stored procedures
See above values.

If I execute the following command:
select &FxTXHqColumn FROM  &FxTXHqTable WHERE &FxTXHqColumn CONTAINS CHAR(44)
 TXHqLastName         
 -------------------- 
 Gutierrez,
 Donelon,
 Heard,
 Orr,
 Tolivar,
 Spreen,
 Palermo,
 Jeandron,
 Blackledge,
 Cradic,
 Cangelosi,
 Neupert,
 Blackman,
 Allen,
 Pecoraro,
 Vilcan,
 Whittaker,
 Magner,

We get a list of  TXHqLastName  that contain a comma.

If I enter the following command:
select (SRPL(&FxTXHqColumn,CHAR(44),NULL,0))=40  FROM  &FxTXHqTable WHERE 
&FxTXHqColumn CONTAINS CHAR(44)
 (SRPL(TXHqLastName,CHAR(44),NULL,0))     
 ---------------------------------------- 
 Gutierrez
 Donelon
 Heard
 Orr
 Tolivar
 Spreen
 Palermo
 Jeandron
 Blackledge
 Cradic
 Cangelosi
 Neupert
 Blackman
 Allen
 Pecoraro
 Vilcan
 Whittaker
 Magner
 
notice that the comma has been removed. the &FxTXHqColumn is required to provide
the actual column name.

If I execute the following command I get the indicated results.

UPDATE &FxTXHqTable SET &FxTXHqColumn = (SRPL( 
&FxTXHqColumn,CHAR(46),NULL,0)) WHERE &FxTXHqColumn  CONTAINS 
CHAR(46)
-ERROR- A left parenthesis cannot be followed by a binary operator (2145)
what is intended is for RBase to translate the statement into:
UPDATE TXHqBetaXi SET TXHqLastName=(SRPL(TXHqLastName,CHAR(44),NULL,0)) WHERE 
TXHqLastName 

CONTAINS CHAR(46)


CHAR(46) IS AN ASCII COMMA

Instead I get the above error message.

 
Jim Bentley,
American Celiac Society 
1-504-737-3293
 



________________________________
 From: MikeB <[email protected]>
To: RBASE-L Mailing List <[email protected]> 
Sent: Thursday, March 27, 2014 5:07 PM
Subject: [RBASE-L] - Re: Store procedure question
 

Why would you use an ampersand var inside of the function?

In that context the variable is a VALUE and not a part of a command to be
parsed.

> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Bill
> Downall
> Sent: Thursday, March 27, 2014 4:59 PM
> To: RBASE-L Mailing List
> Subject: [RBASE-L] - Re: Store procedure question
> 
> Jim,
> 
> Since your Macro variable &FxTXHqColumn is enclosed within parentheses
> and is therefore part of an "expression", you have probably confused
> the parser into not substituting the macro variable soon enough.
> 
> Just for giggles, see what happens if you put a space between the
> parenthesis and the ampersand.
> 
> I would also put CHAR(46) into parens, because that syntax could also
> stymie a parser. Or better yet, put it in a variable.
> 
> SET VAR vDot = (CHAR(46))
> 
> UPDATE &FxTXHqTable SET  +
> 
> &FxTXHqColumn = (SRPL( &FxTXHqColumn, .vDot, NULL, 0)) + WHERE
> &FxTXHqColumn CONTAINS .vDot)
> 
> 
> 
> If that doesn't help, let us know, and we'll escalate.
> 
> Bill
> 
> 
> On Thu, Mar 27, 2014 at 4:29 PM, James Bentley
> <[email protected]> wrote:
> 
> 
>     I am trying to modify one of my stored procedure to be more
> generalized.
>     The following is a part of the code
>     SET VAR FxTXHqTable=(.FxTXHqTableName)
>     SET VAR FxTXHqColumn=(.FxTXHqColName)
>     -- Remove period, comma and double space
>     UPDATE &FxTXHqTable SET
> &FxTXHqColumn=(SRPL(&FxTXHqColumn,CHAR(46),NULL,0)) WHERE &FxTXHqColumn
> CONTAINS CHAR(46)
>     UPDATE &FxTXHqTable SET
> &FxTXHqColumn=(SRPL(&FxTXHqColumn,CHAR(44),NULL,0)) WHERE &FxTXHqColumn
> CONTAINS CHAR(44)
>     UPDATE &FxTXHqTable SET &FxTXHqColumn=(SRPL(&FxTXHqColumn,'
> ',CHAR(32),0))
> 
> 
>     The stored-procedure has two arguments FxTXHqTableName TEXT (18)
> AND FxTXHqColName TEXT (18)
>     They represent a tablename and a column name.
>      The error message given is that left parenthesis can not be
> followed by '&'
>     this part of the syntax "(SRPL(&FxTXHqColumn" seems to be the
> problem
>     it works if I substitute the actual table name for example
> "MbrCurHMainAdrLine" which
>     is the value I am passing to the stored procedure. note the other
> parts of
> 
>     the abatement with the "&"  worked fine.
> 
>     The are some 50 lines of UPDATE commands in the procedure.
> 
>     Does any one have any suggestions as to how I can fix this
> problem.
> 
>     setting up the complete line and into a variable the esecuting
> the variable seems
>     to defeat the purpose of generalizing the stored procedure.
> 
> 
>     Jim Bentley,
>     American Celiac Society
>     1-504-737-3293
> 
> 
> 

Reply via email to