का उपयोग कर रहा pyodbc उपयोग कर रहा हूँ एक SQL सर्वर डेटाबेसएसक्यूएल pyodbc और SQL सर्वर
import datetime
import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
TrustedConnection=Yes")
cursor = conn.cursor()
ratings = ("PG-13", "PG", "G")
st_dt = datetime(2010, 1, 1)
end_dt = datetime(2010, 12, 31)
cursor.execute("""Select title, director, producer From movies
Where rating In ? And release_dt Between ? And ?""",
ratings, str(st_dt), str(end_dt))
को क्वेरी करने के लिए, लेकिन नीचे त्रुटि मिल रही है। क्या ट्यूपल पैरामीटर को अलग तरीके से संभालना होगा? क्या इस क्वेरी को ढूढ़ने का कोई बेहतर तरीका है?
('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Line 9:
Incorrect syntax near '@P1'. (170) (SQLExecDirectW);
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Statement(s) could not be prepared. (8180)")
अद्यतन:
मैं स्ट्रिंग स्वरूपण ऑपरेटर, जो आदर्श के रूप में यह सुरक्षा चिंताओं का परिचय नहीं है का उपयोग कर काम करने के लिए इस क्वेरी प्राप्त करने में सक्षम था।
import datetime
import pyodbc
conn = pyodbc.connect("Driver={SQL Server};Server='dbserver',Database='db',
TrustedConnection=Yes")
cursor = conn.cursor()
ratings = ("PG-13", "PG", "G")
st_dt = datetime(2010, 1, 1)
end_dt = datetime(2010, 12, 31)
cursor.execute("""Select title, director, producer From movies
Where rating In %s And release_dt Between '%s' And '%s'""" %
(ratings, st_dt, end_dt))
अपने दूसरे विकल्प के लिए, एक गतिशील टपल एक कामना के आकार के आधार एसक्यूएल बयान बनाने के लिए की आवश्यकता होगी ? में बयान के पारित करने के लिए – user338714
आप की तरह कुछ कर सकते हैं:।। '?' cursor.execute (("फिल्मों से चयन * कहां रेटिंग में ({})" प्रारूप ',' में शामिल होने के (* lEN (रेटिंग))) , रेटिंग्स) – rleelr