Controlling SAS from Another Application Using OLE |
SAS provides two properties, RC and ResultString, that make it possible to pass information from the SAS session that you are automating back to the application that is controlling it. RC can contain a number; ResultString can contain a text string.
To set the values of these properties from within the SAS session, use the SETRC function with this syntax:
error=SETRC("result-string", rc-number);
where result-string is the value to be assigned the ResultString property, and rc-number is the value to be assigned to the RC property.
For example, you can use the Submit method to submit DATA step code that returns an error code as part of its processing. You can then check the value of that error using the RC or ResultString property. Here is a Visual Basic example of this:
Private Delcare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Dim OleSAS as Object Set OleSAS = CreateObject("SAS.Application") OleSAS.Submit("data _null_; error=setrc('Error string', 2.0); put error; run;") Sleep 500 Do while x=0 If (OleSAS.Busy) then Sleep 500 else If (OleSAS.RC <> 0) Then Response = MsgBox(OleSAS.ResultString, vbOKOnly, "Error message is", 0, 0) x=1 EndIf Loop End Sub
Copyright © 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.