SAS數據分析,C#操作的一些輔助代碼(重發)。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SASWorkspaceManager;
namespace SASShare
{
public class Connection
{
/**//// <summary>
/// 默認創建本地連接
/// </summary>
public Connection()
: this(null, 0, "", "", Protocols.ProtocolBridge)
{}
public Connection(string serverIP, short serverPort, string userName, string userPass, Protocols protocols)
{
this._serverIP = serverIP;
this._serverPort = serverPort;
this._userName = userName;
this._userPassword = userPass;
this._protocals = protocols;
}
private string _serverIP = string.Empty, _userName = string.Empty, _userPassword = string.Empty;
/**//// <summary>
/// 用戶密碼
/// </summary>
public string UserPassword
{
get { return _userPassword; }
set { _userPassword = value; }
}
/**//// <summary>
/// 用戶名
/// </summary>
public string UserName
{
get { return _userName; }
set { _userName = value; }
}
/**//// <summary>
/// 服務器地址
/// </summary>
public string ServerIP
{
get { return _serverIP; }
set { _serverIP = value; }
}
private short _serverPort;
/**//// <summary>
/// 連接端口號
/// </summary>
public short ServerPort
{
get { return _serverPort; }
set { _serverPort = value; }
}
private Protocols _protocals;
/**//// <summary>
/// 連接協議
/// </summary>
public Protocols Protocals
{
get { return _protocals; }
set { _protocals = value; }
}
public SASProvider CreateSASProvider()
{
return new SASProvider(this);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SASWorkspaceManager;
namespace SASShare
{
public class Connection
{
/**//// <summary>
/// 默認創建本地連接
/// </summary>
public Connection()
: this(null, 0, "", "", Protocols.ProtocolBridge)
{}
public Connection(string serverIP, short serverPort, string userName, string userPass, Protocols protocols)
{
this._serverIP = serverIP;
this._serverPort = serverPort;
this._userName = userName;
this._userPassword = userPass;
this._protocals = protocols;
}
private string _serverIP = string.Empty, _userName = string.Empty, _userPassword = string.Empty;
/**//// <summary>
/// 用戶密碼
/// </summary>
public string UserPassword
{
get { return _userPassword; }
set { _userPassword = value; }
}
/**//// <summary>
/// 用戶名
/// </summary>
public string UserName
{
get { return _userName; }
set { _userName = value; }
}
/**//// <summary>
/// 服務器地址
/// </summary>
public string ServerIP
{
get { return _serverIP; }
set { _serverIP = value; }
}
private short _serverPort;
/**//// <summary>
/// 連接端口號
/// </summary>
public short ServerPort
{
get { return _serverPort; }
set { _serverPort = value; }
}
private Protocols _protocals;
/**//// <summary>
/// 連接協議
/// </summary>
public Protocols Protocals
{
get { return _protocals; }
set { _protocals = value; }
}
public SASProvider CreateSASProvider()
{
return new SASProvider(this);
}
}
}
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SASWorkspaceManager;
using SAS;
using System.IO;
using System.Data.OleDb;
namespace SASShare
{
public class SASProvider
{
private IWorkspace workSpace;
public IWorkspace WorkSpace
{
get { return workSpace; }
set { workSpace = value; }
}
private Connection _connection;
public Connection Connection
{
get { return _connection; }
}
string message;
WorkspaceManager _workspaceManager = new SASWorkspaceManager.WorkspaceManager();
public delegate void SASErrorEventHandler(object sender, SASErrorEventArgs args);
/**//// <summary>
/// 執行出錯事件
/// </summary>
public event SASErrorEventHandler OnError;
internal SASProvider(Connection connection)
{
_connection = connection;
}
/**//// <summary>
/// 運行SAS程序
/// </summary>
/// <param name="sasCommand"></param>
public void Submit(string sasCommand)
{
IServerDef2 _serverDef = null;
if (!string.IsNullOrEmpty(_connection.ServerIP))
{
_serverDef = new SASWorkspaceManager.ServerDefClass();
_serverDef.Port = Connection.ServerPort;
_serverDef.Protocol = Connection.Protocals;
_serverDef.MachineDNSName = Connection.ServerIP;
}
workSpace = _workspaceManager.Workspaces.CreateWorkspaceByServer("_LOCAL_", SASWorkspaceManager.Visibility.VisibilityProcess, _serverDef, _connection.UserName, _connection.UserPassword, out message);
try
{
workSpace.LanguageService.Submit(sasCommand);
}
catch (Exception e)
{
FireEvent(this, e);
}
finally
{
workSpace.Close();
}
}
/**//// <summary>
/// 運行SAS文件
/// </summary>
/// <param name="path"></param>
public void RunSasFile(string path)
{
if (File.Exists(path))
{
string command = File.ReadAllText(path);
Submit(command);
}
}
/**//// <summary>
/// 查詢結果集
/// </summary>
/// <param name="libname">分配邏輯庫引用名</param>
/// <param name="command"></param>
/// <returns></returns>
public System.Data.DataSet GetResults(string libname, string command)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SASWorkspaceManager;
using SAS;
using System.IO;
using System.Data.OleDb;
namespace SASShare
{
public class SASProvider
{
private IWorkspace workSpace;
public IWorkspace WorkSpace
{
get { return workSpace; }
set { workSpace = value; }
}
private Connection _connection;
public Connection Connection
{
get { return _connection; }
}
string message;
WorkspaceManager _workspaceManager = new SASWorkspaceManager.WorkspaceManager();
public delegate void SASErrorEventHandler(object sender, SASErrorEventArgs args);
/**//// <summary>
/// 執行出錯事件
/// </summary>
public event SASErrorEventHandler OnError;
internal SASProvider(Connection connection)
{
_connection = connection;
}
/**//// <summary>
/// 運行SAS程序
/// </summary>
/// <param name="sasCommand"></param>
public void Submit(string sasCommand)
{
IServerDef2 _serverDef = null;
if (!string.IsNullOrEmpty(_connection.ServerIP))
{
_serverDef = new SASWorkspaceManager.ServerDefClass();
_serverDef.Port = Connection.ServerPort;
_serverDef.Protocol = Connection.Protocals;
_serverDef.MachineDNSName = Connection.ServerIP;
}
workSpace = _workspaceManager.Workspaces.CreateWorkspaceByServer("_LOCAL_", SASWorkspaceManager.Visibility.VisibilityProcess, _serverDef, _connection.UserName, _connection.UserPassword, out message);
try
{
workSpace.LanguageService.Submit(sasCommand);
}
catch (Exception e)
{
FireEvent(this, e);
}
finally
{
workSpace.Close();
}
}
/**//// <summary>
/// 運行SAS文件
/// </summary>
/// <param name="path"></param>
public void RunSasFile(string path)
{
if (File.Exists(path))
{
string command = File.ReadAllText(path);
Submit(command);
}
}
/**//// <summary>
/// 查詢結果集
/// </summary>
/// <param name="libname">分配邏輯庫引用名</param>
/// <param name="command"></param>
/// <returns></returns>
public System.Data.DataSet GetResults(string libname, string command)