저는 파이썬에서 초보자입니다. 나는 액세스 데이터베이스에 대한 질의를하고있다. SQL 문에 문자열 변수를 전달했지만 두 배로 계산할 수는 없습니다. 여기 파이썬에서 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)
>>>
파이썬의 DBAPI 사양과 실제로 호환되는 데이터베이스 API를 사용해야합니다. – ThiefMaster