我的系统上安装了SAS EG 7.1和Office 2013。我试图通过从VBA调用它来运行我的SAS项目。作为第一步,我尝试使用我在网上找到的以下代码调用一个简单的PROC步骤:
Sub createTable()
Dim obObjectFactory As New SASObjectManager.ObjectFactory
Dim obObjectKeeper As New SASObjectManager.ObjectKeeper
Dim obServer As New SASObjectManager.ServerDef
Dim obSAS as SAS.workspace
Dim query as String
query = "PROC SQL; CREATE TABLE ME.TABLE1; RUN;"
obServer.MachineDNSName = "XXXXXXXXX"
obServer.Protocol = ProtocolBridge
obServer.Port = 8561
obObjectFactory.LogEnabled = True
Set obSAS = obObjectFactory.CreateObjectByServer("SASApp", True, obServer, "", "")
obSAS.LanguageService.Submit query
End Sub
但是我在下面一行得到了运行时错误'-2147213310:
Set obSAS = obObjectFactory.CreateObjectByServer("SASApp", True, obServer, "", "")
Runtime error '-2147213310 任何人都可以帮我推进这个错误吗?此外,非常感谢任何运行SAS项目的指导。我是VBA和SAS的新手。
答案 0 :(得分:1)
错误表示您正在连接到元数据服务器而不是工作区服务器。
根据this:
1)workspaceservers默认端口是8591。
2)workspaceserver也可以在不同的机器上运行。连接到您的配置文件,转到服务器列表,找到要连接的服务器,然后右键单击上下文菜单“属性”以查看工作区服务器的正确连接配置文件。
建议的连接详情:
obServer.MachineDNSName =“XXXXXXX”
obServer.Protocol = SASObjectManager.Protocols.ProtocolBridge
obServer.Port = 8591
设置obSAS = obObjectFactory.CreateObjectByServer(“sas”,True,obServer,Nothing,Nothing)
不确定使用SASApp
v sas
之间的区别是否建议您尝试使用第一个,如果失败则尝试使用第二个。