在ironpython中利用装饰器执行SQL操作的例子

 更新时间:2015年05月02日 15:24:57   作者:agentwx   我要评论
这篇文章主要介绍了在ironpython中利用装饰器执行SQL操作的例子,文章中以操作MySQL为例,需要的朋友可以参考下

比较喜欢python的装饰器, 试了下一种用法,通过装饰器来传递sql,并执行返回结果
这个应用应该比较少
为了方便起见,直接使用了ironpython, 连接的mssql server

# -*- coding: utf-8 -*-
import clr
clr.AddReference('System.Data')
from System.Data import *
from functools import wraps

conn_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()

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

相关文章

  • Python常用的内置序列结构(列表、元组、字典)学习笔记

    Python常用的内置序列结构(列表、元组、字典)学习笔记

    序列指元素排成一列的数据结构,Python中有list列表而没有默认内置array数组,以下我们来整理一下Python常用的内置序列结构(列表、元组、字典)学习笔记
    2016-07-07
  • Python zip函数打包元素实例解析

    Python zip函数打包元素实例解析

    这篇文章主要介绍了Python zip函数打包元素实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 使用Python对Csv文件操作实例代码

    使用Python对Csv文件操作实例代码

    这篇文章主要介绍了使用Python对Csv文件操作实例代码,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • django 控制页面跳转的例子

    django 控制页面跳转的例子

    今天小编就为大家分享一篇django 控制页面跳转的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 利用Python实现图书超期提醒

    利用Python实现图书超期提醒

    很多人喜欢逛图书馆,时不时去借本书,但每本书可能只可以借两个月,一旦超期不还就会进行相应的处罚!为什么不写个脚本来通知自己图书超期呢?说了这么多废话,我们就进入主题吧!!!
    2016-08-08
  • Python内置函数reversed()用法分析

    Python内置函数reversed()用法分析

    这篇文章主要介绍了Python内置函数reversed()用法,结合实例形式分析了reversed()函数的功能及针对序列元素相关操作技巧与使用注意事项,需要的朋友可以参考下
    2018-03-03
  • Python2与Python3的区别点整理

    Python2与Python3的区别点整理

    在本篇文章里小编给大家整理的是关于Python2与Python3的区别点整理内容,需要的朋友们可以参考下。
    2019-12-12
  • Python数据结构与算法之图结构(Graph)实例分析

    Python数据结构与算法之图结构(Graph)实例分析

    这篇文章主要介绍了Python数据结构与算法之图结构(Graph),结合实例形式分析了图结构的概念、原理、使用方法及相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 用pycharm开发django项目示例代码

    用pycharm开发django项目示例代码

    这篇文章主要介绍了用pycharm开发django项目示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python基于回溯法子集树模板解决最佳作业调度问题示例

    Python基于回溯法子集树模板解决最佳作业调度问题示例

    这篇文章主要介绍了Python基于回溯法子集树模板解决最佳作业调度问题,简单说明了作业调度问题并结合实例形式给出了Python使用回溯法子集树模板实现最佳作业调度问题的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09

最新评论