如何创建与SAS的ODBC连接?

时间:2010-03-01 17:04:30

标签: python sas odbc

我正在编写一个需要访问SAS数据的程序。我已经下载了SAS的ODBC驱动程序并安装了它们,但我需要能够以编程方式动态创建ODBC连接。以下代码(在Python中)似乎应该可以工作:

import ctypes

ODBC_ADD_DSN = 1        

def add_dsn(name, driver, **kw):
    nul, attrib = chr(0), []
    kw['DSN'] = name
    for attr, val in kw.iteritems():
        attrib.append('%s=%s' % (attr, val))

    return ctypes.windll.ODBCCP32.SQLConfigDataSource(0, ODBC_ADD_DSN, driver, nul.join(attrib)) == 1

print add_dsn('SAS Test', 'SAS', description = 'Testing SAS')

但它会弹出SAS ODBC配置对话框,设置数据源名称,并等待用户输入信息并关闭对话框。我怎么能避免这种情况?

2 个答案:

答案 0 :(得分:3)

为了获得对SAS数据的ODBC访问,您需要连接到正在运行的某种类型的SAS会话;您无法使用SAS ODBC驱动程序直接访问SAS数据表文件。

请参阅SAS ODBC drivers guide,“我需要什么软件?”部分。

您的问题并未说明您正在尝试通过正在运行的SAS产品访问SAS数据。 SAS ODBC驱动程序指南应该告诉您如何根据要进行连接的SAS产品设置连接。

答案 1 :(得分:0)

我知道zilch关于SAS,但用于在ODBC中动态连接数据库的函数是SQLDriverConnect。您不需要(或想要)添加DSN,只需安装驱动程序即可。