SAS的if语句中使用错误
我刚刚写了一个宏,可以登录到远程服务器,当然是一个简单的宏SAS的if语句中使用错误,sas,Sas,我刚刚写了一个宏,可以登录到远程服务器,当然是一个简单的宏 %macro sign(servername); %put ; %put ********* You are now entering the server ********* ; %put ********* ********* ; sign
%macro sign(servername);
%put ;
%put ********* You are now entering the server ********* ;
%put ********* ********* ;
signon &servername user=_promopt_ password=_prompt_;
%if error %then
%put There is a problem in logging in;
%else
%put ********* ********* ;
%put ********* ********* ;
%put ********* You are now ready to use server ********* ;
%put ********* ********* ;
%put ********* ********* ;
%mend;
所以在这里,我想在日志中写一些东西,如果它出于任何原因抛出错误,那可能是错误的密码或连接或其他原因,我想在%put的帮助下打印一条语句,但不确定如何打印 您应该能够在SIGNON语句中使用CMACVAR选项
signon &servername user=_promopt_ password=_prompt_ cmacvar=cerror;
%if &cerror %then
CMACVAR=值
指定宏变量的名称,SAS在其中存储指示当前登录状态的代码。执行登录时,SAS会检查登录的状态,并在指定的CMACVAR变量中存储0、1或2的返回码
返回代码在登录处理完成后生成,您指定的名称将成为当前服务器会话的默认名称。。然后可以通过编程方式查询CMACVAR宏变量,以了解登录的处理状态(已完成、失败或正在进行)。请参阅SIGNON中的CMACVAR宏变量值,了解每个返回代码的含义
CMACVAR Macro Variable Values in SIGNON
Value Description
0 The sign-on is complete.
1 The sign-on failed.
2 You have already signed on to the current server session.
3 The sign-on is in progress.
注意:如果SIGNON命令或语句由于语法错误而失败,则不会设置宏变量
我们用来测试远程会话是否正常工作的方法是重新提交代码,该代码将使用sysrput更改本地SAS会话中宏变量的设置。嗨,汤姆,我只想使用put语句打印一些我想要的行,如果登录由于任何原因无法通过。哇,这就是我要找的,非常感谢汤姆。