2012-09-07 179 views
3

我正在使用Ubuntu。我想在django中使用pyodbc訪問Microsoft sql數據庫。我安裝了所有要求。要做到這一點,我寫了這個FreeTDS SQL Server無效數據類型

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

我得到的錯誤是

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

但是,當我嘗試這個

cursor.execute('SELECT * FROM mytable') 

它工作正常。爲什麼我會看到這個錯誤,有沒有辦法解決這個問題?

+0

當我也嘗試這個cursor.execute('SELECT ID FROM?',table_name)它不起作用。你能提供該命令的等同性嗎? –

回答

1

SQL Server不支持表名稱的變量。嘗試將整個語句構建爲一個字符串,然後執行它。

+0

我該怎麼做?你有這樣的例子嗎? –

+0

你的意思是說,我試過那個,但沒有succsess ........ sql =「選擇Id從?」 cursor.execute(sql,table_name) –

+0

@JohnSmith - '?'表示參數佔位符。如上所述,SQL Server不支持[標識符]的參數(http://msdn.microsoft.com/zh-cn/library/ms175874.aspx)。 – Bryan