首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primavera P6 SDK无法与Python27创建连接

Primavera P6 SDK无法与Python27创建连接
EN

Stack Overflow用户
提问于 2017-09-27 18:41:53
回答 1查看 683关注 0票数 0

我正在使用Python2.7 32位(遗憾的是,Primavera的SDK只能用于32位)并使用comtype模块在windows 10 64位上创建与Primavera软件开发工具包的连接。

我代码的有效部分是

代码语言:javascript
复制
#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")

错误就在线上

代码语言:javascript
复制
SDK.Open("DRIVER={Primavera Software Development Kit};DSN=PMSDK;UID=pubuser;PWD=pubuser")

虽然SDK配置了32位ODBC工具,如下所示:

作为名为PMSDK的数据源添加的SDK

ODBC配置下PMSDK的性能

但是无论我用ConnectionString,做什么,我都会面临这个错误

代码语言:javascript
复制
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))

怎样才能让蟒蛇认识到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结果更改为此错误

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

发布于 2017-09-28 06:46:25

这是一条多么奇怪(或者更简单)的连接之路。

简单地说,ConnectionString必须是:

代码语言:javascript
复制
"DRIVER={Primavera Software Development Kit};DSN=PMSDK;DATABASE=PMSDK;UID=myuid;PWD=mypwd"

在这里,您必须用用户名和密码替换myuidmypwd,在此欢迎屏幕上定期打开Primavera时输入的密码。

欢迎屏幕

请记住,这个问题是由于对如何连接到python 2.7上的Primavera的软件开发工具包(只适用于32位安装)进行了简单测试造成的,因此,如果您尝试使用python 64位,您必须面对安装32位版本的可悲事实,还必须重新安装这个新安装版本所需的所有包/扩展。

也就是说,我在使用64位版本的工作中已经安装了comtype,但是为了使代码运行,我不得不再次安装它,只针对32位版本。

您必须为新的python32位安装创建一个单独的文件夹,命名它为Python27_32,并在安装过程中选择它。

之后,要用pip实用程序或32位版本的setup.py文件安装软件包,需要从它的特定文件夹运行python,因此没有python -m pip install <package>,而是C:\Python27_32\python.exe -m pip installC:\Python27_32\python.exe setup.py install

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46455049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档