2012-09-07 177 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