博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ironpython利用装饰器执行sql
阅读量:6683 次
发布时间:2019-06-25

本文共 1145 字,大约阅读时间需要 3 分钟。

比较喜欢python的装饰器, 试了下一种用法,通过装饰器来传递sql,并执行返回结果

这个应用应该比较少
为了方便起见,直接使用了ironpython, 连接的mssql server

# -*- coding: utf-8 -*-import clrclr.AddReference('System.Data')from System.Data import *from functools import wrapsconn_str = "server=localhost;database=DB_TEST;uid=sa;password=sa2008"def mssql(sql):    def handler_result(rs):        rst = []        while rs.Read():            rst.Add(rs[0])        return rst    def decorator(fn):        @wraps(fn)        def wrapper(*args, **kwargs):            TheConnection = SqlClient.SqlConnection(conn_str)            TheConnection.Open()            try:                MyAction = SqlClient.SqlCommand(sql, TheConnection)                MyReader = MyAction.ExecuteReader()            except Exception,ex:                raise AssertionError(ex)            rst_data = handler_result(MyReader)            kwargs["sql_rst"] = rst_data            result = fn(*args, **kwargs)            MyReader.Close()            TheConnection.Close()            return result        return wrapper    return decorator@mssql(sql="Select getdate()")def get_data(sql_rst=""):    print sql_rst[0]get_data()

算是为了好玩吧,回看了下,可能实际用的机会不多

转载地址:http://jaaao.baihongyu.com/

你可能感兴趣的文章
volcanol_Linux_问题汇总系列
查看>>
常用的HTML5、CSS3新特性能力检测写法
查看>>
JS验证集合
查看>>
第05篇:C#星夜拾遗之使用数据库
查看>>
web服务器比较(IIS,Tomcat,Apache,Resin )
查看>>
上海一日游记
查看>>
ArchLinux上卸载高版本的jdk安装低版本的jdk
查看>>
青年之锋——文学之家
查看>>
js预解析+作用域+this指向
查看>>
iOS KVO监听readonly属性
查看>>
线性判别分析随记
查看>>
十一课堂|通过小游戏学习Ethereum DApps编程(2)
查看>>
当iPhone不再流行 Android它将如何面对未来?
查看>>
web前端浅谈,htmlcss脱离标准文档流相关
查看>>
Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis
查看>>
免费的容器架构可视化工具 | 阿里云应用高可用服务 AHAS 发布重大新特性
查看>>
随着加密货币市场稳定 比特币价格不可避免的会下降
查看>>
跟我学习dubbo-Dubbo管理控制台的安装(3)
查看>>
构建微服务:Spring boot
查看>>
物联网落地三大困境破解
查看>>