2014-10-20 4 views
1

아마도이 문제는 구성 문제 일 뿐이지 만 코딩 관련 문제 일 수 있습니다. 그러나, 나는 파이썬과 sqlanydb를 사용하여 데이터베이스에 연결하려고한다. SQLAnywhere는/opt/sybase에 설치되고 Shell은 sa_config.sh 파일을 소싱합니다.Python을 통해 SQLAnywhere로 연결하는 데 문제가 있습니다. sqlanydb.OperationalError : 구문 분석 오류 : .ini 파일을 찾을 수 없습니다.

정상적인 도구로 연결하는 것이 효과적입니다. 예 : 내가

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import ctypes 
import sqlanydb 

def main(args): 
    db1 = sqlanydb.connect(userid="DBA", 
          password="sql", 
          DataSourceName="mytest") 
    db1.close 
    return 0 

if __name__ == '__main__': 
    import sys 
    sys.exit(main(sys.argv)) 

그것이

Traceback (most recent call last): 
    File "./myfile.py", line 52, in <module> 
    sys.exit(main(sys.argv)) 
    File "./myfile.py", line 42, in main 
    DataSourceName="mytest") 
    File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 461, in connect 
    return Connection(args, kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 510, in __init__ 
    self.handleerror(*error) 
    File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 520, in handleerror 
    eh(self, None, errorclass, errorvalue) 
    File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 342, in standardErrorHandler 
    raise errorclass(errorvalue) 
sqlanydb.OperationalError: Parse error: Cannot find .ini file 

에 실패한 것 파이썬에서이 일을하려고

그러나
dbisql -c "uid=dba;pwd=sql;eng=mydemo" 

를 통해 나는 sqlanydb의 소스 상에 모습을 가지고 있지만 참조를 찾을 수 없습니다 이 시점에서 .ini 파일을 찾으십시오. 그렇다면 ASA16을 sqlanydb로 실행하는 올바른 방법은 무엇입니까?

답변

1

~/.odbc.ini 파일이 없으면 오류가 발생합니다. "DataSourceName = mytest"를 지정하면 SQL Anywhere ODBC 드라이버가 ~/.odbc.ini에서 mytest라는 DSN을 찾지 만 .ini 파일을 찾을 수 없습니다.

dbdsn 유틸리티를 사용하여 문제의 DSN을 만드십시오.

전체 공개 : 저는 SQL Anywhere 엔지니어링에서 SAP에서 근무합니다.

+0

시도해 보겠습니다. 이 문서가 눈에 띄지 않으면 odbc가 필요하다는 것을 눈에 띄게 표시 할 수 있습니까? – frlan

+0

트릭을 했어. 감사. – frlan