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
In-Reply-To: <AB11F5664EF82843B131C9DBD01C4E4005EBDD67@m-nccd-1.nccd.cdc.gov>
Content-Type: TEXT/PLAIN; charset=US-ASCII
Bob-
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!
-Casey
On Fri, 7 Jan 2005, Schwartz, Robert E. wrote:
> Casey,
>
> 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);
>
> HTH.
>
> 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;
> etc...
>
> Any insight here would be greatly appreciated.
>
> Thanks.
> casey
>
|