异常: 不能用 DB-Library (如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据发送到客 户端。 这个问题是数据库中字段为ntext类型,这种类型目前的c-library不支持,需要转为nvchar或text类型才可以。 1. 建议:将ntext修改为nvarchar或text. 2. 既然不支持ntext但支持text,那么我们只需要在输出时将ntext转换为text就好了 `SELECT cast ( field_name AS TEXT ) AS field_name` `select convert(varchar(50),guid) as guid, convert(text,content) as content from news`
""" import pymssql
class MSSQL: def __init__(self,host,user,pwd,db): self.host=host self.user=user self.pwd=pwd self.db=db
def __GetConnect(self): if not self.db: raise(NameError,"没有设置数据库信息")
self.conn=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf-8") cur=self.conn.cursor() if not cur: raise(NameError,"连接数据库失败") else: return cur
ms=MSSQL(host="Test-FPC\sqlexpress",user="sa",pwd="1",db="its") resList=ms.ExecQuery("select * from [SchemeCategory] where IsShow=1") for i in resList: print(i["Name"])
def __GetConnect(self): if not self.db: raise(NameError,"没有设置数据库信息")
# r'DRIVER={SQL Server Native Client 11.0};SERVER=test;DATABASE=test;UID=user;PWD=password' self.conn=pyodbc.connect(driver=self.driver,server=self.server,database=self.db,uid=self.uid,pwd=self.pwd) # self.conn = pyodbc.connect('DRIVER={SQL Server};SERVER=Test-FPC\sqlexpress;PORT=1433;DATABASE=its;UID=sa;PWD=1') cur=self.conn.cursor() if not cur: raise(NameError,"连接数据库失败") else: return cur
ms=MSSQLODBC(driver="SQL Server",server="Test-FPC\sqlexpress",db="its",uid="sa",pwd="1") resList=ms.ExecQuery("select top 10 * from [MallProductItem]") for m in resList: print(m[4])