2011-09-10 2 views
1

간단한 쿼리를 수행 할 때 다음 오류가 발생합니다. 나는 무엇이 바뀌 었는지 알 수 없다.unixODBC 오류 IM001

class Song(Entity): 
    using_options(tablename='tbSongs', autoload=True) 
    using_table_options(schema='apra') 

데이터베이스 연결을 확인하고 내가 dir(Song)을하고 모든 올바른 열을 볼 수 있기 때문에 클래스가 확인 구성 : 여기

은 SQLAlchemy의 (비약) 클래스의 예이다. 그러나 간단한 쿼리는 작동하지 않습니다.

>>> songs = Song.query.all() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1729, in all 
    return list(self) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1839, in __iter__ 
    return self._execute_and_instances(context) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1854, in _execute_and_instances 
    result = conn.execute(querycontext.statement, self._params) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1399, in execute 
    params) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1532, in _execute_clauseelement 
    compiled_sql, distilled_params 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_context 
    context) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1633, in _execute_context 
    context) 
    File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 325, in do_execute 
    cursor.execute(statement, parameters) 
sqlalchemy.exc.DBAPIError: (Error) ('IM001', '[IM001] [unixODBC][Driver Manager]Driver does not support this function (0) (SQLColAttribute)') 'SELECT [tbSongs_1].[ID_Song] AS [apra_tbSongs_ID_Song], [tbSongs_1].[Album] AS [apra_tbSongs_Album], [tbSongs_1].[Title] AS [apra_tbSongs_Title], [tbSongs_1].[Composer] AS [apra_tbSongs_Composer], [tbSongs_1].[Performer] AS [apra_tbSongs_Performer], [tbSongs_1].[TrackNumber] AS [apra_tbSongs_TrackNumber], [tbSongs_1].[Duration] AS [apra_tbSongs_Duration], [tbSongs_1].[RecordLabel] AS [apra_tbSongs_RecordLabel], [tbSongs_1].[Notes] AS [apra_tbSongs_Notes], [tbSongs_1].[Class] AS [apra_tbSongs_Class], [tbSongs_1].[SongID] AS [apra_tbSongs_SongID], [tbSongs_1].[Deleted] AS [apra_tbSongs_Deleted] \nFROM apra.[tbSongs] AS [tbSongs_1]'() 
>>> 

설정 세부 사항 :

  • 32 비트 아치 리눅스
  • 파이썬 2.7.2
  • SQLAlchemy의 0.7.2
  • 여기

    해당 클래스에 대한 쿼리 및 결과 출력
  • 엘릭서 0.7.1
  • FreeTD S 0.82-5
  • 인 unixODBC 2.3.0-1

/etc/odbcinst.ini :

[ODBC Drivers] 
tds = Installed 
[tds] 
Driver = /usr/lib/libtdsodbc.so 
Setup = /usr/lib/libtdsodbc.so 

/etc/odbc.ini :

[ODBC] 
Trace = 0 
[DBNAME] 
Driver = TDS 
Trace = No 
Server = xx.xx.xx.xx\dbname 
Database = dbname 
Port = 1433 
+0

쿼리와 sqlalchemy 및 드라이버의 버전을 제공하면 도움이됩니다. – rocksportrocker

+0

@rocksportrocker 정보를 추가했습니다 – MFB

+0

아마도 sqlalchemy 메일 링리스트에서 요청해야합니다. http://www.sqlalchemy.org/support.html을 참조하십시오. SQL 문은 나에게 잘 보입니다. – rocksportrocker

답변

0

당신이 제공 할 수 이 사건의 ODBC 추적. 나는 단지이 문제를 인식하게되었고, 나는 그 순간에 그것을 재현 할 수 없다. 그래서 당신이 나에게 그것을 보내고 로그를 보낼 수 있다면 그것은 올바른 방향으로 나아가 야합니다.

+0

오, 그런데, 만약 당신이 그것을 (추적) 내게는 딱딱한 점 org에서 닉으로 보내고 싶어 문제가 뭔지 wisee. –

+0

안녕하세요 닉, 목록에서 너를 괴롭 혔다. 나는 이것을 다시 재현 할 수는 없지만, 내가 할 수있는 경우 목록이나 여기를 통해 이메일을 보내 드리겠습니다. 도움을 주셔서 감사합니다 – MFB

+0

좋아, 내 suspiscion 어떤 형태의 부패가 진행되고있다. 드라이버 관리자가 드라이버가 SQLColAttribute 또는 SQLColAttributes를 지원하지 않는다고 생각하면 오류가 발생합니다. 그러나 그것을 일으키는 것은 말하기 어렵습니다. 그러나 내가 부패를 의심한다면 아마도 이상한 일이 일어나고 있는지를보기 위해 valgrind와 같은 것을 사용해보십시오. –

1

이 오류가 있으며 unixODBC 2.2.12로 다운 그레이드하면 해결됩니다 (2.2.14와 함께 빌드하려면 PyOBDC를 얻을 수없고 2.2.12가되어야 함). 필자는 유닉스 용 ODBC 도구의 최신 릴리스 (Freetds 0.91은 매우 문제가 있음)에 상당히 문제가 있습니다.

+0

unixODBC 오류라고 생각되는 부분이 있으면 지원 메일 링리스트에 알려주십시오. 2.2.14는 이제 3 살입니다. –

+0

안녕하세요 닉 - 2.3을 사용하고 싶습니다.0이지만이 주제와 동일한 오류가 발생합니다.이 오류는 unixODBC를 기반으로 한 것으로 보입니다. http://code.google.com/p/pyodbc/issues/detail?id=212를 포함하여 freetds/pyodbc와 관련된 다른 문제도 있습니다. PyODBC와 FreeTDS의 저자는 일반적으로 완전히 반응이 없습니다. – zzzeek

1

사전 패키지 된 FreeTDS, unixODBC 및 pyodbc를 제거하십시오. 버전 0.91, 2.3.0 및 2.1.9를 사용하는 소스에서 재구성하는 것이 효과적이지만 까다로운 프로세스 일 수 있습니다. SQLAlchemy 그룹의 최근 스레드에 대해 자세히 설명했습니다. http://groups.google.com/group/sqlalchemy/browse_thread/thread/971e068032d51dd5

+0

감사합니다. 불행히도 지금은 Linux로 테스트 할 시간이 없습니다. 대신 방금 작동하기 때문에 OSX에 배포했습니다. – MFB