Date: Fri, 7 Jan 2005 15:31:21 -0500
Reply-To: Casey Pierce <casey@SDAC.HARVARD.EDU>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Casey Pierce <casey@SDAC.HARVARD.EDU>
Subject: Re: ODS Path
Content-Type: TEXT/PLAIN; charset=US-ASCII
Ahhh! Thank you! Because the online docs have the syntax:
ODS PATH <(APPEND | PREPEND | REMOVE)> location(s);
The <> make the () a bit hard to see... Many, many thanks!
On Fri, 7 Jan 2005, Schwartz, Robert E. wrote:
> At first I thought that you had discovered an error in the language
> definition for the ODS PATH statement. On closer inspection, it looks
> like you left out four small characters. The APPEND, PREPEND, and
> REMOVE keywords are not free-standing keywords. For reasons that must
> have something to do with compiler theory, these keywords are enclosed
> in parentheses. The access mode specifiers (READ, WRITE, and UPDATE)
> must also be enclosed in parentheses. Try the following statement and
> see if it solves your problem:
> ods path (prepend) new(read);
> Bob Schwartz
> National Center for Chronic Disease Prevention
> And Health Promotion
> National Centers for Disease Control and Prevention
> Atlanta, GA. US
> -----Original Message-----
> From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of
> Casey Pierce
> Sent: Friday, January 07, 2005 2:17 PM
> To: SAS-L@LISTSERV.UGA.EDU
> Subject: ODS Path
> Hello SAS-Lers,
> I have put off becoming comfortable with ODS just long enough
> to forget everything I might have learned in the classes two
> years ago. Now I am at a complete loss. Unfortunately, we
> are on a UNIX system, so most of what was in the classes was
> irrelevant anyway.
> All I want to do is create a public catalog of styles for all
> users here to access, then access them. I believe I succeeded
> in the first part, as I have a catalog I simply called "rtf"
> for the time being. Within it, I created style "rtf1."
> Now, the problem is trying to access it in a public macro.
> My path statement seems to be failing. I have:
> libname _new '/home/prinf/programs/styles';
> ods path prepend _new.rtf read;
> Which I thought puts the store, _new.rtf, at the beginning
> of the list of stores to search with read permissions.
> But my next line is a "ods path show" and I get:
> Current ODS PATH list is:
> 1. WORK.PREPEND(READ)
> 2. _NEW.RTF(READ)
> 3. WORK.READ(READ)
> Which seems a little bit wrong. The next step is a proc report
> that attempts to call the style "rtf1" that should be in
> _new.rtf, but SAS can't create it because it can't find the
> parent template, styles.default, which is the parent for rtf1.
> Somehow, my ods path statement is removing sasuser and sashelp.
> Why is this? I didn't have this problem when I created the
> rtf1 style using:
> libname new '/home/prinf/programs/styles';
> ods path prepend new write;
> proc template ;
> define style rtf1 / store=new.rtf;
> parent = styles.default;
> Any insight here would be greatly appreciated.