首页 > 解决方案 > 呼叫模块 SAS 企业指南

问题描述

此代码适用于 PC SAS 9.4,但不适用于 SAS Enterprise Guide。有没有办法在 EG 上进行这项工作?

FILENAME SASCBTBL CATALOG "work.temp.attrfile.source";

DATA _NULL_;
FILE SASCBTBL;
    PUT "ROUTINE WNetGetConnectionA MODULE=MPR MINARG=3 MAXARG=3 STACKPOP=CALLED RETURNS=LONG;";
    PUT "  ARG 1 CHAR INPUT BYADDR FORMAT=$CSTR200.;";
    PUT "  ARG 2 CHAR UPDATE BYADDR FORMAT=$CSTR200.;";
    PUT "  ARG 3 NUM UPDATE BYADDR FORMAT=PIB4.;";
RUN;

%MACRO getUNC;
DATA zz1;
length input_dir $200 output_dir $200;
* The input directory can only be a drive letter + colon ONLY e.g. j: ;
input_dir = 'O:';
output_dir = ' ';
output_len = 200;
call module('*IE',"WNetGetConnectionA", input_dir, output_dir, output_len);
call symputx('dir',input_dir,'l');
call symputx('path',output_dir,'l');
RUN;
%put drive letter is &dir;
%put path is &path;
%MEND getunc;

%getunc;

当我尝试在 SAS EG 上运行它时,我收到以下注释:错误:无法加载模块 MPR。注意:函数 MODULE('WNetGetConne'[显示 18 个字符中的 12 个],'O:'[显示 200 个字符中的 12 个],'
'[显示 200 个字符中的 12 个],200) 在第 54 行第 186 列的参数无效。 input_dir =O: output_dir= output_len=200错误=1 N =1

标签: sas

解决方案


推荐阅读