【问题标题】:Set up and connect to local SQLEXPRESS database using SQL Server Management Studio 2008 r2 and adodbapi使用 SQL Server Management Studio 2008 r2 和 adodbapi 设置并连接到本地 SQLEXPRESS 数据库
【发布时间】:2012-11-23 21:16:53
【问题描述】:

出于测试目的,我尝试在本地计算机上设置 SQL Server 数据库,并使用 Python 中的 adodbapi 连接到它。我使用 SQL Server Management Studio 2008 r2 创建数据库和表。我启用了 SQL Server Browser 服务,但我仍然无法使用 adodbapi 进行连接。使用此连接字符串:

adodbapi.connect(r'Provider=SQLOLEDB;Data Source=COMPUTERNAME.\SQLEXPRESS;Initial Catalog=Test;User ID=userName; Password=password;')

我收到以下错误:

Traceback(最近一次调用最后一次):文件“”,行 1、在文件中 “C:\Python26\ArcGIS10.0\lib\site-packages\adodbapi\adodbapi.py”,行 307,连接中 raise OperationalError(e, "打开连接时出错:" + connection_string) OperationalError: (com_error(-2147352567, '发生异常。', (0, u'Microsoft OLE DB Provider for SQL Server', u'[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 没有 存在或访问被拒绝。', None, 0, -2147467259), None), '打开错误 连接:提供者=SQLOLEDB;数据源=COMPUTERNAME.\SQLEXPRESS;初始 目录=测试;用户 ID=用户名;密码=密码;')

对我所缺少的有什么见解吗?

【问题讨论】:

  • 你为什么有COMPUTERNAME.\SQLEXPRESS?您是否尝试过COMPUTERNAME\SQLEXPRESS.\SQLEXPRESS(其中一个,而不是两者)?
  • 我已经找了几个小时试图找到答案,我遇到了一篇提到在“\SQLEXPRESS”之前添加点的帖子。添加点后,当我尝试连接时,需要一分钟才能认为它实际上在做某事。没有点,它只是表示服务器不存在。据我了解,点表示本地。
  • 使用.\SQLEXPRESS,您会在一分钟后收到不同的错误消息,还是相同的错误消息?您确定SQLEXPRESS 服务正在运行吗?
  • 我得到了同样的错误信息,但没有花一分钟时间去想它立即例外。我认为该服务正在运行...我启动了 SQL 服务器浏览器服务,但我对此很陌生,所以我可能错过了一步。除了 SQL Server Browser 外,它表示 SQL Server (SQLEXPRESS) 已启动。

标签: python sql-server sql-server-2008 ssms adodbapi


【解决方案1】:

我做了更多的挖掘工作,最终偶然发现了答案。我的连接字符串中缺少“Integrated Security=SSPI”,事实证明我不需要数据源中“\SQLEXPRESS”之前的点。这是对我有用的连接字符串:

adodbapi.connect(r'Provider=SQLOLEDB;Data Source=COMPUTERNAME\SQLEXPRESS;Initial Catalog=Test;User ID=COMPUTERNAME\USERNAME; Password=PASSWORD;Integrated Security=SSPI')

【讨论】:

  • 如果您明确指定用户名和密码,则不需要 Integrated Security 行。当您正确命名服务器并将该属性排除在外时,您能否确认您的连接字符串不起作用?
  • 我刚刚用两个连接字符串再次运行它,但如果没有定义集成安全属性,它就无法工作。
猜你喜欢
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
相关资源
最近更新 更多