pyodbc pymssql访问 ms sqlserver

import pyodbc
import traceback
import config_json
import logging
class Server():
    def __init__(self):
        SERVER = '10.0.100.100'
        USERNAME = 'ma'
        PASSWORD = '123456'
        DATABASE = 'caiji'
        # self.connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};ENCRYPT=yes;TrustServerCertificate=yes;UID={USERNAME};PWD={PASSWORD}'
        self.connectionString = 'DRIVER=ODBC Driver 18 for SQL Server;SERVER=%s;DATABASE=%s;ENCRYPT=yes;TrustServerCertificate=yes;UID=%s;PWD=%s' %(SERVER,DATABASE,USERNAME,PASSWORD)
    def updateDb(self):
        conn = pyodbc.connect(self.connectionString)
        cursor = conn.cursor()
        cmds=codecs.open("caiji.sql","r",'utf-8').read().split(";")
        for cmd  in cmds:
            print(cmd)
            cursor.execute(cmd)
        conn.commit()
        cursor.close()
        conn.close()

先使用的pymssql,没成功.

ms sqlserver odbc driver下载地址

后来又来试pymssql 2.3.0,找到了错误原因:

conn = pymssql.connect(SERVER, USERNAME,PASSWORD, DATABASE,tds_version="7.0")

关键就是要加入tds_version这一参数。

pymssql对比pyodbc优点是不需安装驱动,而微软的驱动在旧版本系统上安装不上,这时pymssql就可派上用场。用pymssql遇到的一个问题是varchar类型字段中保存中文时乱码,要用nvarchar类型。pyodbc就没遇到这个问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值