SAS中文论坛

标题: 保存preview出错 [打印本页]

作者: shiyiming    时间: 2004-5-25 08:40
标题: 保存preview出错
我的程序是
[code:f3b10]INIT:                        
   link run; return;                                                                                    
RUN:                                            
submit;                                    
    libname sudata '/home2/dev_cbfx/sudata'                               server=bg_sas01.appsrv;                     
    data ttt.test;                           
       set sudata.suck1400;                             
    run;                                       
  endsubmit;                     
if (_status_ ne 'C') then                           
    do;                                
     if (preview('EDIT') = -1) then                                
        rc=preview('clear');                           
       else                                    
        do;                                      
             rc=preview('FILE','_webout');               
             put rc;                              
           end;                                       
      end;                                       
   else                                    
      rc=preview('clear');                                 
return; [/code:f3b10]
报错信息是
ERROR: No logical assign for filename _WEBOUT.
我看应该是rc=preview('FILE','_webout');这一句有问题,是我写法不对吗?
作者: shiyiming    时间: 2004-5-25 09:59
不好意思,程序粘过来就不成样子了,其实主要就是
rc=preview('FILE','_webout');
这一句有问题,是写法不对吗,还是要进行其它的什么设置
我把'_webout'改成具体的文件'd:\t.txt'也不行,报错是
No logical assign for filename D:\T.TXT
各位大侠帮忙诊断看看
作者: shiyiming    时间: 2004-5-25 10:53
这个问题的关键有2点:
1、你用submit; ......; endsubmit;所有语句不会马上执行,而是遇到return;才执行。所以你即使加了指定fileref的语句也不会马上执行,依然会报那个错。
2、你没有指定fileref。

试试这么修改
[code:36e65]INIT:                        
   link run; return;                                                                                    
RUN:
/*只需要加上这句话,其他都不变,你需要复习以下submit和filename这2个语句的语法和作用*/
submit continue; filename _webout 'd:\t.txt'; endsubmit;                                     ......                                    
return; [/code:36e65]
作者: shiyiming    时间: 2004-5-25 15:39
你的回答应该是正中要害了,但我是不清楚,而且还碰到了相同的错误报告,不好意思。你的意思是这样吗?
[code:d5416]INIT:                        
   link run; return;                                                                                    
RUN:                                            
submit continue;                                      
    libname sudata '/home2/dev_cbfx/sudata' server=bg_sas01.appsrv;
    data ttt.test;                           
       set sudata.suck1400;                              
    run;
    filename _webout 'd:\t.txt';                                      
  endsubmit;                     
if (_status_ ne 'C') then                           
    do;                                
     if (preview('EDIT') = -1) then                                
        rc=preview('clear');                           
       else                                      
        do;                                      
             rc=preview('FILE','_webout');               
             put rc;                                
           end;                                       
      end;                                       
   else                                      
      rc=preview('clear');                                 
return;[/code:d5416]
作者: shiyiming    时间: 2004-5-25 15:46
我想我表达的很清楚啊,请在顶楼的程序中找到RUN:(第4行)和submit;(第5行),
在这2行之间插入2楼的整行语句
[code:7ac3c]submit continue; filename _webout 'd:\t.txt'; endsubmit;[/code:7ac3c]
其他所有都不变。

你应该好好看看submit continue;和submit;的区别,在2楼中我已经讲的很清楚了。
你可别再乱黑我为你修改的程序了,呵呵呵 <!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: -->  <!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
作者: shiyiming    时间: 2004-5-25 15:57
毁人不倦,要耐心啊,大家共同进步! <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->
作者: shiyiming    时间: 2004-5-25 16:28
很谢谢你的热心。
我照着你说的改了程序,还是不行,把那句话放在程序的各处都不行。我还是回去补补理论知识吧,免得没头苍蝇一样乱来。
作者: shiyiming    时间: 2004-5-25 17:33
我这里没错啊。我只修改了data step的部分。
CODE
[code:2c7ef]INIT&#58;
link run;
return;

RUN&#58;
submit continue; filename _webout 'd&#58;\t&#46;txt'; endsubmit;
submit;
*libname sudata '/home2/dev_cbfx/sudata' server=bg_sas01&#46;appsrv;
libname sudata 'Q&#58;\Test data';
data test;
set sudata&#46;account;
run;
endsubmit;
if &#40;_status_ ne 'C'&#41; then
do;
if &#40;preview&#40;'EDIT'&#41; = -1&#41; then
rc=preview&#40;'clear'&#41;;
else
do;
rc=preview&#40;'FILE','_webout'&#41;;
put rc;
end;
end;
else
rc=preview&#40;'clear'&#41;;
return;[/code:2c7ef]
LOG
[quote:2c7ef]1    filename _webout 'd:\t.txt';

0
2    *libname sudata '/home2/dev_cbfx/sudata'
2  ! server=bg_sas01.appsrv;
3    libname sudata 'Q:\Test data';
NOTE: Libname SUDATA refers to the same physical library as DWH.
NOTE: Libref SUDATA was successfully assigned as follows:
      Engine:        V8
      Physical Name: Q:\Test data
4    data test;
5    set sudata.account;
6    run;

NOTE: There were 5459 observations read from the data set
      SUDATA.ACCOUNT.
NOTE: The data set WORK.TEST has 5459 observations and 40
      variables.
NOTE: DATA statement used:
      real time           0.92 seconds
      cpu time            0.26 seconds[/quote:2c7ef]
有问题,你再把代码和LOG贴上来。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2