我正在尝试使用 Python 2.7 32 位(遗憾的是 Primavera 的 SDK 仅适用于 32 位)并使用comtypes模块在 windows 10 64 位上创建与Primavera Software development Kit的连接。
我的代码的有效部分是
#Needed Imports
import sys
import os
import comtypes.client
from comtypes.client import CreateObject
#Create the ADO Object, then connect to Primavera's Database,
#supplying the "ConnectionString" as an argument to the method "Open".
SDK = CreateObject('ADODB.Connection')
SDK.Open("DRIVER={Primavera Software Development Kit};DSN=PMSDK;UID=pubuser;PWD=pubuser")
错误就在这条线上
SDK.Open("DRIVER={Primavera Software Development Kit};DSN=PMSDK;UID=pubuser;PWD=pubuser")
尽管 SDK 配置了 32 位 ODBC 工具,如下图所示:
但无论我用ConnectionString做什么,我总是面临这个错误
COMError: (-2147467259, 'Unspecified error', (u'[ATI][OpenRDA ODBC]General error - Database keyword not present in the connect string', u'Microsoft OLE DB Provider for ODBC Drivers', None, 0, None))
应该怎么做才能让 python 识别 Primavera 的软件开发工具包?!
编辑
将ConnectionString更改为DRIVER={Primavera Software Development Kit};DSN=PMSDK;DATABASE=C:\Oracle\Primavera P6\PMSDK\Drivers;UID=pubuser;PWD=pubuser
或DRIVER={Primavera Software Development Kit};SERVER=127.0.01;DSN=PMSDK;DATABASE=C:\Oracle\Primavera P6\PMSDK\Drivers;UID=pubuser;PWD=pubuser
导致此错误
COMError: (-2147467259, 'Unspecified error', (u'[ATI][OpenRDA ODBC]RDA error: Resource unknown - Database Name:C:\\Oracle\\Primavera P6\\PMSDK\\Drivers is not valid on Server.', u'Microsoft OLE DB Provider for ODBC Drivers', None, 0, None))