복붙노트

[PYTHON] Pyodbc 오류 데이터 원본 이름을 찾을 수없고 기본 드라이버가 역설을 지정하지 않았습니다.

PYTHON

Pyodbc 오류 데이터 원본 이름을 찾을 수없고 기본 드라이버가 역설을 지정하지 않았습니다.

나는 paradox 데이터베이스에서 데이터를 읽으려고 pyobdc를 사용하려고 시도하고 있으며 데이터베이스에 연결하려고 할 때 다음과 같은 오류가 계속 발생합니다.

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

데이터베이스에 대한 새 DNS 링크를 만들려고했지만 그다지 도움이되지 못했습니다.

내 시스템 링크는 다음과 같습니다.

내 코드는 다음과 같습니다.

import os
import sys
import time
import pyodbc

LOCATION = "c:\Users\Marcello\Desktop\DATA\ScorMonitor.db"

cnxn = pyodbc.connect(r"Driver={{Microsoft Paradox Driver (*.db )}};Fil=Paradox 5.X;DefaultDir={0};Dbq={0}; CollatingSequence=ASCII;")
cursor = cnxn.cursor()
cursor.execute("select last, first from test")
row = cursor.fetchone()
print row

해결법

  1. ==============================

    1.확인할 사항에 대한 두 가지 생각 :

    확인할 사항에 대한 두 가지 생각 :

    1) 연결 문자열이 잘못되었습니다. ODBC 관리자 프로그램 (http://www.visokio.com/kb/db/dsn-less-odbc에서 가져옴)에서 직접 알려진 올바른 연결 문자열을 얻을 수있는 방법이 있습니다. 이 지침은 MDB를 사용한다고 가정하지만 동일한 프로세스가 역설 파일에 대해 작동합니다.

    DSN 파일에서 다음과 유사한 내용을 볼 수 있습니다.

    [ODBC]
    DRIVER=Microsoft Access Driver (*.mdb)
    UID=admin
    UserCommitSync=Yes
    Threads=3
    SafeTransactions=0
    PageTimeout=5
    MaxScanRows=8
    MaxBufferSize=2048
    FIL=MS Access
    DriverId=25
    DefaultDir=C:\
    DBQ=C:\db1.mdb
    

    위의 내용을 전체 연결 문자열로 변환하려면 다음을 수행하십시오.

    이것은 전체 연결 문자열을 제공합니다. 이 예제에서 문자열은 다음과 같습니다.

    DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;axScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:\;DBQ=C:\db1.mdb
    

    2) 32/64 비트 불일치. 필자는 32 비트 Python과 64 비트 드라이버를 섞을 때 문제가 발생했습니다. 파이썬 인터프리터와 데이터베이스 드라이버 라인을 점검 할 수 있습니다.

  2. ==============================

    2.질문 주셔서 감사합니다. 비슷한 문제가 있습니다.이 질문과 답변을 통해 필자는 필자에게 필요한 것을 이끌어 냈습니다. Windows 용 64 비트 Python과 32 비트 ODBC 드라이버가 일치하지 않는 문제가 발생했습니다 (Chad Kennedy가 제안했듯이). 저는 완전히 업데이트 된 Fall Creator 's Edition을 실행 중이며 Microsoft Office Pro 2016을 설치했습니다. MS Office 설치 프로그램은 여전히 ​​32 비트 설치로 기본 설정되어 있습니다. (시작하지 마십시오 ...) - 설치시이 질문을하지 않으므로 32 비트 Office를 실행하고 있다는 사실을 알고 놀라게 될 것입니다. . 이 때문에 MS Access 용 32 비트 ODBC 드라이버가 설치됩니다. MS Office 설치 프로그램 대화 상자에서 클릭 할 수있는 작은 눈에 띄지 않는 링크가있어서 64 비트 설치를 강제합니다.

    질문 주셔서 감사합니다. 비슷한 문제가 있습니다.이 질문과 답변을 통해 필자는 필자에게 필요한 것을 이끌어 냈습니다. Windows 용 64 비트 Python과 32 비트 ODBC 드라이버가 일치하지 않는 문제가 발생했습니다 (Chad Kennedy가 제안했듯이). 저는 완전히 업데이트 된 Fall Creator 's Edition을 실행 중이며 Microsoft Office Pro 2016을 설치했습니다. MS Office 설치 프로그램은 여전히 ​​32 비트 설치로 기본 설정되어 있습니다. (시작하지 마십시오 ...) - 설치시이 질문을하지 않으므로 32 비트 Office를 실행하고 있다는 사실을 알고 놀라게 될 것입니다. . 이 때문에 MS Access 용 32 비트 ODBC 드라이버가 설치됩니다. MS Office 설치 프로그램 대화 상자에서 클릭 할 수있는 작은 눈에 띄지 않는 링크가있어서 64 비트 설치를 강제합니다.

    64 비트 Python 설치는 32 비트 Microsoft Access ODBC 드라이버에서 작동하지 않으며 Microsoft는 컴퓨터에 32 비트 MS Office가 설치되어있는 경우 64 비트 ODBC 드라이버를 설치하도록 허용하지 않습니다.

    수정 프로그램은 MS Office를 제거한 다음 설치 대화 상자의 작은 링크를 사용하여 64 비트로 설치하도록 지시하여 다시 설치합니다. 걱정하지 마세요. Outlook에서 최근 파일 및 설정을 모두 기억하고 이메일 계정을 기억합니다. 이 작업이 완료되면 64 비트 ODBC 드라이버가 있고 파이썬 코드는 더 이상 문제없이 데이터베이스에 연결됩니다.

  3. ==============================

    3.ODBC 데이터 원본을 설정하기위한 바로 가기는 64 비트 대신 32 비트 데이터 원본을 가리킬 수 있습니다.

    ODBC 데이터 원본을 설정하기위한 바로 가기는 64 비트 대신 32 비트 데이터 원본을 가리킬 수 있습니다.

    제어판 -> 관리 도구 -> 데이터 소스 선택 (ODBC) -> 해당 파일을 마우스 오른쪽 버튼으로 클릭 -> 바로 가기 탭의 속성 -> % windir % \ System32에서 경로 변경 \ odbcad32.exe ~에

    % windir % \ SysWOW64 \ odbcad32.exe

  4. from https://stackoverflow.com/questions/32662123/pyodbc-error-data-source-name-not-found-and-no-default-driver-specified-paradox by cc-by-sa and MIT license