我有一段代码,如果我在mac上运行这个程序(MBA运行mavericks),它的工作原理就像一个符咒。如果我将代码移动到windows box(windows server 2008 R2 64位),则SQL查询本身会出现错误(如下所示)。错误表示“,”附近有语法错误。在
我正在运行的代码如下:try:
cur.execute("SELECT * FROM dbo.IPAM_Node as A \
FULL OUTER JOIN IPAM_NodeAttrData as B ON A.IPNodeId = B.IPNodeId \
FULL OUTER JOIN IPAM_Group as C on A.SubnetId = C.GroupId \
FULL OUTER JOIN IPAM_GroupAttrData as D on C.GroupId = D.GroupId \
WHERE IPAddress IN (%s);",(Hosts_as_Tuples,))
allrows = cur.fetchall()
print 'allrows:', allrows
这段代码在MAC上不起作用,直到我在WHERE子句末尾添加了“,”。这就是windows库似乎反对的地方。我尝试过去掉“,”,程序运行正常,但它不能正确计算元组。在
我试过各种各样的建议,如使用“”——但都没有效果,也没有改变行为。在
运行时错误如下所示:
^{pr2}$
根据版本方法,两地的库在同一版本上。具体如下:
在Mac上:isp-pc:site-packages matingara$ python
Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymssql
>>> pymssql.__version__
'2.0.0'
>>>
在Windows上(尝试了两个版本的python):C:\Python27>python.exe
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymssql
>>> pymssql.__version__
'2.0.0'
>>>
C:\Python27>python.exe
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymssql
>>> pymssql.__version__
'2.0.1'
>>>