파이썬 3.5에서 pyodbc와 pandas를 사용하여 MS Access 2010에서 데이터 행을 ~ 10000 행을로드하고 나중에 몇 가지 상관 관계를 계산합니다. 내가 발전기가 무엇을 확인하기 위해 아래의 코드를하려고하면python (pyodbc) : python 결과에서 ms 액세스 쿼리를 실행하여 크기 오류가 발생합니다.
코드는 ~ 10000에서 약 9600 예상 행을 인쇄 한 후 나는 울부 짖는 오류 얻을 : 내가 가지고있는
[Microsoft][ODBC Microsoft Access Driver] The query cannot be completed. Either the size of the query is larger than the maximum size of a database (2 GB), or there is not enough temporary storage space on the disk to store the query result.
**Code:**
Import pyodbc
import pandas as pd
con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=MyDB.mdb;')
cur - con.cursor()
sql = "SELECT * from [query table]" # I have a query table which is pivoting the data inside the access.
def gen(cursor, sql):
cursor.execute(sql)
While True:
row = cursor.fetchone()
if row is None:
break
yield row
for x in gen(cur,sql):
print(x)
을 생성기의 행을 가져 와서 목록에 추가 한 다음 pd.Dataframe에 추가하는 다른 함수를 정의했지만 생성기가 작업을 완료하지 못하는 것으로 보입니다.
데이터베이스를 압축하고 복구했지만 운이 없었습니다. 또한 mdb 파일의 크기는 현재 500MB를 넘지 않습니다.
이 오류를 어떻게 극복 할 수 있습니까?
미리 감사드립니다.
'pyodbc.connect'를 호출 한 직후에'con.autocommit = True'를 시도해보십시오 –
고맙습니다. Gord - It worked !! 이 문제가 어떻게 해결되었는지 (내 이해를 위해) 알려주십시오. 다시 한번 고마워요. – pbou