2012-09-07 2 views
3

저는 Ubuntu를 사용하고 있습니다. 장고에서 pyodbc를 사용하여 Microsoft SQL 데이터베이스에 액세스하려고합니다. 모든 요구 사항을 설치했습니다. 이를 위해, 나는이FreeTDS SQL Server 데이터 형식이 잘못되었습니다

cursor.execute('SELECT * FROM mytable') 

그것은 잘 작동 할 때,

[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)') 

이다 그러나이

cursor.execute('SELECT Id FROM %s' %table_name) 

나는 점점 오전 오류를 썼다. 왜 그 오류를 볼 수 있습니까? 그 문제를 해결할 방법이 있습니까?

+0

이 커서도 시도해보십시오. ('SELECT Id FROM?', table_name) 잘 동작하지 않습니다. 당신은 그 명령의 동등성을 제공 할 수 있습니까? –

답변

1

SQL Server는 테이블 이름에 대한 변수를 지원하지 않습니다. 전체 문을 문자열로 작성한 다음 실행하십시오.

+0

어떻게하면됩니까? 그렇게 할 수있는 모범이 있습니까? –

+0

당신은 그런 뜻, 그 하나지만 succsess ........ 시도 sql = "SELECT Id FROM?" cursor.execute (sql, table_name) –

+0

@ JohnSmith - '?' 매개 변수 자리 표시자를 나타냅니다. 위에서 언급 한 바와 같이 SQL Server는 [식별자] (http://msdn.microsoft.com/en-us/library/ms175874.aspx)에 대한 매개 변수를 지원하지 않습니다. – Bryan