diff --git a/all.sas b/all.sas index abb49dd..38ef21b 100644 --- a/all.sas +++ b/all.sas @@ -442,6 +442,9 @@ options noquotelenmax; @version 9.2 @author Allan Bowe +

Related Macros

+ @li mf_getxengine.sas + **/ /** @cond */ @@ -1189,6 +1192,49 @@ Usage: /* Return variable type */ &vtype %mend;/** + @file + @brief Returns the engine type of a SAS fileref + @details Queries sashelp.vextfl to get the xengine value. + Usage: + + filename feng temp; + %put %mf_getxengine(feng); + + returns: + > TEMP + + @param fref The fileref to check + + @returns The XENGINE value in sashelp.vextfl or 0 if not found. + + @version 9.2 + @author Allan Bowe + +

Related Macros

+ @li mf_getengine.sas + +**/ + +%macro mf_getxengine(fref +)/*/STORE SOURCE*/; + %local dsid engnum rc engine; + + %let dsid=%sysfunc( + open(sashelp.vextfl(where=(fileref="%upcase(&fref)")),i) + ); + %if (&dsid ^= 0) %then %do; + %let engnum=%sysfunc(varnum(&dsid,XENGINE)); + %let rc=%sysfunc(fetch(&dsid)); + %let engine=%sysfunc(getvarc(&dsid,&engnum)); + %* put &fref. ENGINE is &engine.; + %let rc= %sysfunc(close(&dsid)); + %end; + %else %let engine=0; + + &engine + +%mend; +/** @file mf_isblank.sas @brief Checks whether a macro variable is empty (blank) @details Simply performs: