python
  • python-2.7
  • ms-access
  • pyodbc
  • 2016-12-01 3 views 1 likes 
    1

    Python을 통해 pyodbc를 사용하여 Access 데이터베이스에 SQL 삽입을 가져 오는 데 어려움을 겪고 있습니다. 각 시도는 "유효하지 않은 구문 오류"를 발생시킵니다.Access와 pyodbc를 사용하는 INSERT 문에서 구문 오류가 발생했습니다.

    import pyodbc 
    
    ney = 'data1' 
    soy = 'data2' 
    
    MDBA = 'C:/db/dbBase.mdb'; DRVA = '{Microsoft Access Driver (*.mdb)}'; PWDA = 'pw' 
    
    # connect to db 
    cona = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRVA,MDBA,PWDA)) 
    cura = cona.cursor() 
    SQL = ("""insert into [db1](col1, col2) values ('ney', 'soy')""") 
    #SQL = ("insert into db1(col1, col2values (?, ?)", ney, soy) 
    
    cura.execute(SQL) 
    cona.commit() 
    

    내가 SELECT 문을 수행 할 수 있었으므로 올바른 INSERT 구문은 무엇입니까?

    +0

    주석 처리 된 SQL은 values' '전에없이 닫는 괄호 또는 공간 구문 오류입니다. – Parfait

    답변

    1

    코드를 IDLE에 복사하여 붙여 넣기 만하면 오류가 발생하지 않습니다. 그러나 리터럴 값 'ney'와 'soy'를 테이블에 삽입했습니다. 위해서는 값을이 같은 매개 변수가있는 쿼리를 사용해야하는 변수의를 얻을 수 있습니다 :

    sql = "insert into [db1] (col1, col2) values (?, ?)" 
    params = (ney, soy) # tuple containing parameter values 
    cura.execute(sql, params) 
    

     관련 문제

    • 관련 문제 없음^_^