我正在尝试将我的烧瓶应用程序连接到Azure数据库,当我遇到这个错误时。我在上面找不到任何东西,任何帮助都将不胜感激。
pypyodbc.connect(
Driver={SQL Server};Server=tcp:******.net,1433;Database=***;UID=***;PWD=***;
)发布于 2018-01-24 00:41:52
这个问题是由您的
当pypyodbc试图通过pypyodbc.connect建立连接时,(很多!)它所做的事情是尝试确定您是否具有对数据库的只读或读写访问权限。它使用的ODBC调用由“Server”ODBC驱动程序转换为
select substring('NY',status/1024&1+1,1) from master..sysdatabases where name=DB_NAME()显然Azure SQL不喜欢它。
相比之下,像“用于Server的ODBC驱动程序11”这样的更现代的ODBC驱动程序将相同的ODBC调用转换为
SELECT CASE DATABASEPROPERTYEX( DB_NAME(), 'Updateability') WHEN 'READ_ONLY' THEN 'Y' ELSE 'N' END这可能更适合Azure SQL。
因此,您可以切换到较新的ODBC驱动程序,或者可以尝试使用pyodbc而不是pypyodbc,因为pyodbc在连接数据库时似乎不会查询数据库的RO/RW状态。
https://stackoverflow.com/questions/48407579
复制相似问题