我是一名Python初學者。我正在訪問數據庫上進行查詢。我想將一個字符串變量傳遞給sql語句,但無法解決它的雙。如何在python中傳遞sql語句的變量?
這裏是我的代碼:
qllname = 29221.0
llname = "01-01-05-W2"
sqlstatement = recordset.Open("SELECT * FROM LLD WHERE LLD = '%s'" % (llname),connection,1,3)
for x in range(recordset.Fields.Count):
fields_dict[x] = recordset.Fields.Item(x).Name
print fields_dict[x], recordset.Fields.Item(x).Value, x
sqlstatement2 = recordset2.Open("SELECT * FROM SWAWELLS WHERE WWDR_NO = '%d'" % (qllname),connection2,1,3)
for x2 in range(recordset2.Fields.Count):
print recordset2.Fields.Item(x2).Value, type(recordset2.Fields.Item(x2).Value)
結果:
LLD 01-01-05-W2 0
X 678817.81875 1
Y 5431052.45982 2
Traceback (most recent call last):
File "L:/temporary/start of test/accessnew--.py", line 25, in <module>
sqlstatement2 = recordset2.Open("SELECT * FROM SWAWELLS WHERE WWDR_NO = '%d'" % (qllname),connection2,1,3)
File "<COMObject ADODB.Recordset>", line 4, in Open
com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft JET Database Engine', u'Data type mismatch in criteria expression.', None, 5003071, -2147217913), None)
>>>
您應該嘗試使用實際與Python的DBAPI規範兼容的數據庫api。 – ThiefMaster