连接到 SQL 服务器时"TypeError: argument of type 'NoneType' is not iterable" Python pymssql 错误



当试图连接到SQL服务器时,我得到错误"TypeError:类型'NoneType'的参数是不可迭代的"。我相信错误是在我连接到SQL服务器本身的行上生成的,因为我的第二个print语句从未使用过,尽管我可能错了。

我使用的是pymysql-2.1.3和python 3.5.1

server = getenv("####")
user = getenv("####")
password = getenv("####")
database = getenv("####")
print("hi")
conn = pymssql.connect(server, user, password, database)
print("hi2")
cursor = conn.cursor()
cursor.execute("####"
               "SELECT Name, SourceTable, SourceTableID FROM dbo.Attachment WHERE Name LIKE '%icad%'")

conn.close()
print("Connect to SQL complete")

这将导致错误:

Traceback (most recent call last):
hi
  File "C:/convert.py", line 62, in <module>
    connect_to_sql()
  File "C:convert.py", line 15, in connect_to_sql
    conn = pymssql.connect(server, user, password, database)
  File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734)
  File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821)
  File "_mssql.pyx", line 552, in _mssql.MSSQLConnection.__init__ (_mssql.c:5891)
TypeError: argument of type 'NoneType' is not iterable
Process finished with exit code 1

我不知道为什么会发生这种情况-连接函数完全遵循pymssql文档。

如果有帮助的话,我正在导入以下库:

import os
from os import getenv
import pymssql
import subprocess

我已经在这个问题中删除了数据库凭据,但是我知道它们可以工作,因为我能够通过管理工作室连接到SQL服务器。

有人知道为什么这段代码不工作吗?

这段代码包含在一个名为'connect_to_sql():'的函数中,然后在之后使用,但是下面的一些代码是敏感的,所以我只剪掉了这些特定的行。我希望这足够了。

当代码执行到达

conn = pymssql.connect(server, user, password, database)

这个错误被抛出,因为服务器的值是'None'

你已经把它的值设置在

server = getenv("####")

但是很多时候,getenv失败并且返回none。这是系统/平台相关的(特别是Windows系统)

你可以尝试打印出服务器和用户的值

server = getenv("####")
print(server)
user = getenv("####")
print(user)

我的经验是,它们返回None,因此连接不能通过。由于错误不清楚,我们倾向于假设问题出在连接上。

相关内容

最新更新