我在连接SQL数据库中的数据时遇到问题。
我不确定我是否没有特定的驱动程序,或者我使用的代码是否不正确。有人可以帮我指导正确的方向吗?
操作系统:WX64_WKS。
产品有效期:
---Base SAS Software
14FEB2018
---SAS/STAT
14FEB2018
---SAS/GRAPH
14FEB2018
---SAS/Secure 168-bit
14FEB2018
---SAS/Secure Windows
14FEB2018
---SAS Enterprise Guide
14FEB2018
---SAS/ACCESS Interface to PC Files
14FEB2018
---SAS/ACCESS Interface to Microsoft SQL Server
31DEC2017
---SAS Workspace Server for Local Access
14FEB2018
---SAS/ACCESS to Amazon Redshift
31DEC2017
---High Performance Suite
14FEB2018
16 proc Product_Status;运行;
For Base SAS Software ...
Custom version information: 9.4_M5
Image version information: 9.04.01M5P090617
For SAS/STAT ...
Custom version information: 14.3
For SAS/GRAPH ...
Custom version information: 9.4_M5
For SAS/ACCESS to Amazon Redshift ...
Custom version information: 9.42
For High Performance Suite ...
Custom version information: 2.2_M6
For SAS/ACCESS Interface to PC Files ...
Custom version information: 9.4_M5
NOTE: PROCEDURE PRODUCT_STATUS used (Total process time):
real time 0.24 seconds
似乎没有安装sas访问SQL服务器吗?
我也在尝试连接这些代码并且所有错误都得到了解决。我应该使用哪个代码方向? ODBC或sqlsvr?
我试过sqlsvr并收到此错误消息
代码:
LIBNAME database1 sqlsvr user=datareader password=myspassword DATAsrc=clientA;
错误:
LIBNAME database1 sqlsvr user = datareader password = XXXXXXX DATASRC =客户端A;
错误:尝试建立连接时出现CLI错误:[Microsoft] [ODBC 驱动程序管理器]未找到数据源名称且没有默认驱动程序 指定的错误:LIBNAME语句中的错误。
当我尝试ODBC路由时,我收到了此消息
代码:
LIBNAME database1 ODBC DSN=clientA User=datareader Password=myspassword ;
错误:
LIBNAME database1 ODBC DSN = clientA User = datareader Password = XXXXXXX;
错误:找不到ODBC引擎。错误:LIBNAME出错 言。
有人可以指出我正确的方向吗? DSN应该是每个客户端的数据库名称“ClientA”等,还是应该是服务器的名称?
非常感谢你!
答案 0 :(得分:1)
SQLSRV库引擎DATASRC =选项应指定“ODBC数据源管理器(64位)”应用程序中显示的条目。您可以添加条目,设置(配置)连接参数并测试连接。假设您为新DSN Sales History
命名,libname可能是
libname OldSales sqlsrv datasrc="Sales History" user=... pass=...;
对于想要在SAS代码中直接指定服务器名称,架构,端口,连接持久性等的情况,您可以使用NOPROMPT =选项。选项值将是以分号分隔的名称=值对列表:
libname OldSales sqlsrv user=... pass=... noprompt="Server=<url or hostname><\instance-name-if-other-than-default>,<port-number-if-other-than-default>;Initial Catalog=<database-to-use-if-other-than-default>;..other connection parameters..";
Microsoft文档"Using Connection String Keywords with SQL Server Native Client"是一个很好的参考。另一个很好的资源是connectionstrings网站。 NOPROMPT =值似乎正确,但不起作用,可能有或需要不寻常的间距或引用。
对于静态数据托管环境中的一小组编码器,NOPROMPT =方法可能没问题,并且在大型组织中不需要额外的支持(除了访问)。如果数据托管迁移或更改,则必须更改SAS代码。
在更大的环境中,特别是在SAS服务器环境中,您最好获得IT支持,以创建SAS会话所需的DSN。 DSN将成为所有程序和用户将使用的单一网关,编码人员和分析人员不必陷入连接细节中。