I found some old code. I am sending a few snippets which you can piece together:
internal static SAS.Workspace ConnectToSAS()
{
SASObjectManager.ObjectFactoryClass objFactory = new SASObjectManager.ObjectFactoryClass();
SASObjectManager.ServerDefClass serverDef = new SASObjectManager.ServerDefClass();
// ************************************************
// Configure the SAS server information.
// ************************************************
serverDef.BridgeEncryptionAlgorithm = "SASProprietary";
serverDef.BridgeEncryptionLevel = SASObjectManager.EncryptionLevels.EncryptUserAndPassword;
serverDef.MachineDNSName = "client.dnsexample.local";
serverDef.MachineDNSName = "172.88.111.22";
serverDef.MachineDNSName = "skycutter";
serverDef.Port = 8592;
serverDef.Port = 8591;
serverDef.Protocol = SASObjectManager.Protocols.ProtocolBridge;
// ************************************************
// Create the connection.
// ************************************************
SAS.Workspace sasWorkspace = null;
sasWorkspace = (SAS.Workspace)objFactory.CreateObjectByServer("BridgeConnection", true,
serverDef, "uid", "password");
// Add the SAS object to the ObjectKeeper. If the object is not
// in the ObjectKeeper, it cannot be used by the IOM Data Provider.
SASObjectManager.ObjectKeeperClass objKeeper = new SASObjectManager.ObjectKeeperClass();
objKeeper.AddObject(1, "BridgeConnection", sasWorkspace);
return sasWorkspace;
// objKeeper.RemoveObject(sasWorkspace);
} // connectToSAS()
/// <summary>
/// Submits SAS code using the IOM interface
/// </summary>
/// <param name="sasCode">The SAS statements to be submitted</param>
public SasRunObject SubmitSasCode(string sasCode)
{
try
{
Workspace ws = CreateWorkspace();
SasCore.StepError = false;
SasCore.SasLanguageService.Reset();
SasCore.SasLanguageService = ws.LanguageService;
SasCore.SasLanguageService.Submit(sasCode);
SasCore.SasLanguageService.StepError += SasLanguageService_StepError;
SasCore.SasLanguageService.LineSeparator = "\r\n";
var sro = new SasRunObject();
sro.SasCode = sasCode;
sro.SasLog = SasCore.SasLanguageService.FlushLog(SasCore.LogCharactersToReturn);
sro.SasList = SasCore.SasLanguageService.FlushList(SasCore.ListCharactersToReturn).Replace("\f", "");
return sro;
}
catch (Exception ex)
{
util.HandleError(MethodBase.GetCurrentMethod().Name, ex);
return null;
}
}
... View more