python pyodbc SQL Server本机客户端11.0无法返回几何体列
我已经使用python 2.7安装了SQL Server本机客户端11.0和pyodbc。我能够在python中正确设置连接python pyodbc SQL Server本机客户端11.0无法返回几何体列,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我已经使用python 2.7安装了SQL Server本机客户端11.0和pyodbc。我能够在python中正确设置连接 import pyodbc conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=b;DATABASE=b;UID=b;PWD=b') cur=conn.cursor() query=cur.execute('''select top 1 * from table''') for x in
import pyodbc
conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=b;DATABASE=b;UID=b;PWD=b')
cur=conn.cursor()
query=cur.execute('''select top 1 * from table''')
for x in query.fetchall():
print x
Traceback (most recent call last):
File "<module1>", line 8, in <module>
ProgrammingError: ('ODBC SQL type -151 is not yet supported. column-index=40 type=-151', 'HY106')
如何返回查询
如果我只是打印查询,我将在0x02B74AD8处获得pyodbc.Cursor对象
可能是无法读取的列类型,此表中存在点几何图形
更新
问题在于点几何体。当我取出几何体时,我可以返回光标包含的内容。但是,当几何体列位于其中时,它始终会出现此错误。我假设pyodbc不支持几何对象。。。作为一种解决办法,我可以根据GitHub问题转换为WKT,以下内容似乎可以解决这个问题:
def解包几何体(原始字节):
#根据SSCLRT信息改编
# https://docs.microsoft.com/en-us/openspecs/sql_server_protocols/ms-ssclrt/dc988cb6-4812-4ec6-91cd-cce329f6ecda
tup=struct.unpack('修复了类似的问题:问题似乎是pyodbc返回几何体
for x in query:
print x