2016-11-29 3 views
0

나는이라는 예를 들어 기존 액세스 쿼리 * RunExampleQuery :pyodbc 사용자 입력을 요구 기존 액세스 쿼리를 실행하는

select name from table_x where date = [start]; 

하지만 실행되는 SQL 코드를 찾을 수 없습니다 이 쿼리 즉

sql = """SELECT * FROM *RunExampleQuery WHERE [start] = ?""" 

params = (datetime.date(2016,11,25)) 

cursor.execute(sql,params) 

미리 감사드립니다. 항목의

답변

0

부부는 문제가 있습니다 :

  1. [start] 필드
  2. 준비된 SQL 문에 매개 변수를 바인딩하려면 WHERE 절에서 사용하기 위해 RunExampleQuery에 존재해야합니다, 당신은 튜플의 값을 전달해야합니다 또는 목록. 이 이러한 유형에 스칼라 문자열 변환이 필요합니다

RunExampleQuery

select name, [start] from table_x; 

튜플 매개 변수화

sql = """SELECT * FROM [RunExampleQuery] WHERE [start] = ?""" 
params = datetime.date(2016,11,25) 
cursor.execute(sql, (params,)) 

목록 매개 변수화

sql = """SELECT * FROM [RunExampleQuery] WHERE [start] = ?""" 
params = datetime.date(2016,11,25) 
cursor.execute(sql, [params]) 
+0

그래서 [시작]은 date라는 table_x의 열에서옵니다. MS Access Query에서 사용자 입력을 요청하여 날짜를 입력합니다. 그래서 SQL 부분에서 호출 할 때 sql = "" "SELECT * FROM [RunExampleQuery] WHERE date. [start] =?" "" – pjunited

+0

MSAccess.exe와 같은 사용자 프롬프트 쿼리를 실행할 수 없습니다 . 사용자가 [input()] (https://docs.python.org/2/library/functions.html#input)을 사용하여 Python을 입력하고이를 쿼리 매개 변수로 전달하십시오. – Parfait

+0

감사합니다. 내 파이썬 스크립트를 사용하지 않는 다른 그룹이 쿼리를 사용하기 때문에 그렇게하고 싶지 않습니다. – pjunited