下面显示的Python代码是用来使用Windows身份验证创建Server连接的。我有使用adodbapi库进行数据库连接的约束。
请有人告诉我这段代码中遗漏了什么吗?我参考了库的文档,但没有提到Windows身份验证。
我提到了很多关于这个例外的文章。但它们似乎无助于理解例外的性质及其解决办法。
多步OLE DB操作生成错误.如果可用,请检查每个OLE DB状态值。没有做任何工作。
代码:
import configparser
import adodbapi
config = configparser.ConfigParser()
config.read("C:/plugin/configsql.ini")
_SERVER_NAME = config['SQL']['SERVER_NAME']
_DATABASE = config['SQL']['DATABASE']
conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated Security = True;".format(_SERVER_NAME,_DATABASE))
print(conn)例外:
跟踪(最近一次调用):
文件"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",第113行,在连接中
连接中的"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",co.connect(kwargs)文件第275行
self.connector.Open() #打开ADO连接
文件"",第3行,在Open中
文件"C:\Arelle-master\venv1\lib\site-packages\win32com\client\dynamic.py",第287行,以ApplyTypes表示
结果=self.oleobj.InvokeTypes(*( LCID,LCID,wFlags,retType,argTypes) + args)
pywintypes.com_error:(-2147352567,“异常发生了。”,(0,'Provider',‘多步OLE DB操作生成错误。如果可用,检查每个OLE DB状态值。没有完成任何工作。’,无,1240640,-2147217887),无)
在处理上述异常的过程中,发生了另一个异常:
回溯(最近一次调用):
文件"winAuthentication.py",第8行
conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};Integrated = True;".format(_SERVER_NAME,_DATABASE)“)
文件"C:\Arelle-master\venv1\lib\site-packages\adodbapi\adodbapi.py",行117,在连接中
引发api.OperationalError(e,消息)
Source=MSSQLSERVER01;Database=TESTDB;Integrated:(-2147352567,‘异常发生了。’,(0,‘提供者’,‘多步OLE DB操作生成错误。如果可用,检查每个OLE DB状态值。没有完成任何工作。’,无,1240640,-2147217887),‘错误打开连接到"PROVIDER=MSOLEDBSQL;Data PROVIDER=MSOLEDBSQL;Data Security =True;’)
发布于 2020-01-28 20:10:38
你试过Trusted_Connection=yes了吗?下面是我的连接字符串,它使用windows身份验证(使用pyodbc),但应该是相同的连接参数,而不是集成安全性。
conn = pyodbc.connect('Driver={SQL Server};'
'Server=ServerName;'
'Database=DatabaseName;'
'Trusted_Connection=yes;')或者可能是集成安全性= SSPI,在这里可以找到http://adodbapi.sourceforge.net/quick_reference.pdf。
'Integrated Security=SSPI'https://stackoverflow.com/questions/59956145
复制相似问题