I am trying to get information from an SQL database using python
I was able to connect and retrieve data when the SQL statement was simple such as
cursor.execute("SELECT * FROM Client WHERE UsesTimesheet = 1 ORDER BY ClientName")
However, when I move to a more complex statement I get the error shown below
Traceback (most recent call last):
File "F:\Python\Test - AutoCad.py", line 30, in <module>
where jobnum = 1205992")
File "C:\Python26\ArcGIS10.0\lib\site-packages\pymssql.py", line 196, in execute
raise OperationalError, e[0]
OperationalError: SQL Server message 102, severity 15, state 1, line 1:
Incorrect syntax near 'jobnum'.
This statement works when I use Microsoft SQL 2008 Client but not in Python.
What am I doing incorrectly? For complex statements should I be using SQLAlchemy?
Current Code Below
import pymssql
import _mssql
import sys
# Connect to db using Windows Integrated Authentication.
conn = _mssql.connect(server='000.000.0.0', database='Mydb', trusted=True)
conn = pymssql.connect(host='000.000.0.0', database='Mydb', trusted=True)
# prepare a cursor object using cursor() method
cursor = conn.cursor()
cursor.execute("SELECT PJI.*, PJO.*, \
CST.ABCGS \
FROM dbo.Traverse AS TRE \
LEFT OUTER JOIN dbo.TraversePreEntry AS TPE \
ON TRE.JobNum = dbo.GetJobNumberFromGroupId(TPE.GroupId)\
LEFT OUTER JOIN AutoCADProjectInformation AS PJI\
ON TRE.JobNum = PJI.JobNumber \
LEFT OUTER JOIN CalculationStorageReplacement AS CST \
ON CST.ProjectNumber = dbo.GetJobNumberFromGroupId(TPE.GroupId)\
LEFT OUTER JOIN dbo.TraverseElevations AS TEV\
ON TRE.TraverseId = TEV.TraverseId\
LEFT OUTER JOIN VGSDB.dbo.ProjectOffice PJO\
ON PJI.PjbId = PJO.PjbId\
where jobnum = 1205992")
# Fetch rows
data = cursor.fetchall()
print "Info : %s " % str(data)