python使用pymssql中文乱码问题,python使用sqlserver中文乱码问题

安装版本pip install pymssql==2.1.4

大于2.1.4版本乱码,sqlserver2008版本

更好2.1.4版本解决

# 导入Flask类
import json
import os
import pymssql
import traceback
current_dir_path = os.getcwd()
with open(f"{current_dir_path}/configs/setting.json", 'r') as file:
    datas = json.load(file)

class Mssql(object):
    # 连接库
    def base(database):

        try:
            # 建立连接
            connect = pymssql.connect(
                host=f'{datas["msip"]}',
                port=f'{datas["msport"]}',
                user=f'{datas["msuser"]}',
                password=f'{datas["mspwd"]}',
                database=f'{database}',
                charset='utf8',
                # charset='GB18030',
                as_dict=True,
            )
        except pymssql.Error as e:
            print(f"Error: {e}")


        if connect:
            # print("数据库连接成功!")
            # print("")
            na = 1
        else:
            print("链接失败!")
        return connect

    # 查询数据
    def query(connect,sql):
        try:
            cursor = connect.cursor()
            cursor.execute(sql)
            req = cursor.fetchall()
        except Exception:
            #打印错误信息
            traceback.print_exc()
            return "出错了"

        # print(res)
        return req

    # 生成凭证
    def voucher(connect,sql):
        try:
            cursor = connect.cursor()
            cursor.execute(sql)
        except Exception:
            #打印错误信息
            traceback.print_exc()
            return "出错了"
        # print(res)
        return 1


    # 新增,table表,data数据
    def inserts(connect, table, data):
        # 组装数据
        name = ''
        val = ''
        for v1 in data:
            if data[v1] != None:
                if name == "":
                    name = f"{v1}"
                    val = f"N'{data[v1]}'"
                else:
                    name = f"{name},{v1}"
                    val = f"{val},N'{data[v1]}'"

        insert = f"INSERT INTO {table}({name}) VALUES({val})"
        print(insert)
        cursor = connect.cursor()
        cursor.execute(insert)

        return 1

    # 修改,table表,data数据,where条件
    def updates(connect, table, data, where):
        # 组装数据
        sql = ''
        for v1 in data:
            if data[v1] != None:
                if sql == "":
                    sql = f"{v1}='{data[v1]}'"
                else:
                    sql = f"{sql},{v1}='{data[v1]}'"
        update = f"UPDATE {table} set {sql} where {where}"
        print(update)
        cursor = connect.cursor()
        cursor.execute(update)

        return 1

    #删除,table表,where条件
    def deletes(connect, table, where):
        delete = f"delete from {table} where {where}"
        print(delete)
        cursor = connect.cursor()
        cursor.execute(delete)
        return 1

    # 关闭连接
    def close(conn):
        conn.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值