在ironpython中利用装饰器执行SQL操作的例子
作者:agentwx 发布时间:2022-07-10 19:27:37
标签:Python
比较喜欢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()
算是为了好玩吧,回看了下,可能实际用的机会不多


猜你喜欢
- MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Win
- 前言PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发
- CSS文件的链接方式·附加链接:外部CSS文件·导入CSS:常用应用多个CSS文件时,将多个CSS导入一个CSS文件中CSS规则定义有三种:
- 一、需求分析我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩
- 工程结构views.pydef home(request): TutorialList = ["HTML",
- 在seclists中看到一个很惊人的thread:http://seclists.org/oss-sec/2012/q2/493MySQL爆
- 如何做一个检索结果带链接的检索?具体代码和说明如下:<% data=request.form("search_da
- <title>无标题文档</title> <script language="javascript&
- Python 中使用线程有两种方式:函数或者用类来包装线程对象。函数式:调用 thread 模块中的start_new_thread()函数
- 1. 用grep函数 函数名 grep 调用语法 @foundlist = grep (pattern, @searchlist); 解说
- Psyco 是严格地在 Python 运行时进行操作的。也就是说,Python 源代码是通过 python 命令编译成字节码的,所用的方式和
- 一、python压缩模块简介python直接通过内置压缩模块可以直接进行压缩文件的创建;内置模块 zipfile/rarfile 完成压缩文
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 3.彻底弄懂CSS盒子模式三(浮动的表演和清
- 当数组/矩阵过大则只会显示其中一部分,中间则会自动用省略号代替:直接在import numpy 加上下面一句代码即可解决:import nu
- 不能再向以前一样使用model.add(Merge([Model1,Model2]))必须使用函数式out = Concatenate()(
- python2.7,下面是跑在window上的,稍作修改就可以跑在linux上。实测win7和raspbian均可,且raspbian可以直
- 如 现有字符串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和
- div+css实现圆角边框,在网络上查看了一下,很多都是实现圆角的矩形的方法,我在这里介绍的是实现圆角矩形边框的方法。用代码说明问题:<
- Vue.js绑定HTML class数组语法错误,详情如下所示:昨天在官网教程上发现一个错误是这样的,下面看图http://cn.vuejs
- 问题背景用户反馈说当与外部客户端进行 FTP 传输时,可以成功登录,但无法传输任何数据。总之 FTP 传输失败,需要来弄清楚到底发生了什么。