2015-01-07 7 views
0

는 MS 액세스 데이터베이스에 데이터를 엑셀,하지만 나에게 '구문 오류 정의'매개 변수가있는 INSERT 쿼리 구문에 어떤 문제가 있습니까? 내가 가져올려고

코드주고 :

for col_index in range(0,work_sheet.ncols): 
    column_value = work_sheet.cell(0,col_index).value 
    for row_index in range(1, work_sheet.nrows): 
     row_value = work_sheet.cell(row_index,col_index).value # For the same column, fetch the row data repeatedly 
     db.Execute("INSERT INTO my_table" [column_value] "VALUES(" & row_value & ")") 

오류 :

C:\Data\Database>c:\python27\python.exe My_First_DB_Code.py 
File "My_First_DB_Code.py", line 32 
db.Execute("INSERT INTO my_table" [column_value] "VALUES(" & row_value & ")") 

SyntaxError: invalid syntax 

참고 : 나는 엑셀 시트에서 이미 열 이름을 가져 왔고 열 단위로 열 값을 가져 오려고 시도했습니다.

답변

2

파이썬 문자열 con catenation 구문, SQL이 아닙니다. 다음은이 DB를 호출하기 전에 올바른지 확인하기 위해 인쇄, 별도로 SQL 열을 생성하십시오 :

query_string = "INSERT INTO my_table" + str(column_value) + " VALUES(" + str(row_value) + ")" 
print(query_string) 
# db.Execute(query_string) 
# uncomment when you know the query is correct 

위의 코드는 당신이 그들 사이에 공백없이 my_tablecolumn_value을 연결하려는 것으로 가정합니다. HansUp comments, 당신은 필드 이름에 입력하려고하는, 경우과 같이 query_string을 설정

query_string = query_string = "INSERT INTO my_table ([" + str(column_value) + "]) VALUES ('" + str(row_value) + "')" 
+0

아니, 여전히 구문 오류가 있습니다'_ctypes.COMError : (-2146825154, 없음, (u'Syntax 오류 INSERT INTO 문에서 ' , u'DAO.Database', u'jeterr40.chm ', 5003134, None))' – manty

+0

@manty 먼저 쿼리 문자열을 생성 한 다음 인쇄하여 시도하고있는 내용인지 확인하십시오 달성하기. 위의 편집을 참조하십시오. – MattDMo

+0

난 * column_value * 삽입 된 값을받을 수있는 필드의 이름입니다 생각. 그렇다면 완성 된 명령문에서 대상 필드 이름을 괄호로 묶어야합니다. INSERT INTO my_table ([field name]) VALUES (... – HansUp