adodbapi orm对象查询(二)

Python例程:使用adodbapi访问MSSQL数据库 今天学习用Python访问数据库,以前用ADO习惯了,所以先找个封装了ADO的模块来试试。adodbapi是用python封装ADO的数据库访问模块,adodbapi接口完全符合Python DB-API2.0规范,简单易用。以下是自己学习过程中写的一个例程,使用了查询、建表、插入数据、执行存储过程等功能,基本上涵盖了日常数据库编程所需的功能。#coding=utf-8import ado 阅读详情

转载注明出处 http://blog.youkuaiyun.com/xugangjava/article/details/7565420

接上篇,实现SQL关键字,以前搞java这些经常是数据库改了一个字段,

先改数据库,然后改SQL,还要改Javabean,最后还要去改前台页面惊恐

实现下面这些函数将会是代码更加简化

#where
def where(**kv):
	keys=''
	params=[]
	for key in kv.keys():
		if keys:keys+=' and '
		else: keys=' where '
		flag='='
		if key.endswith('_gt'):
			flag='>'
		if key.endswith('_lt'):
			flag='<'
		if key.endswith('_ge'):
			flag='>='
		if key.endswith('_le'):
			flag='<='
		keys+=key+flag+'?'
		param=kv[key]
		if isinstance(param,unicode):param=param.encode('gbk')
		params.append(param)
	return keys,tuple(params)
#select
def select(conn,colums,tables,**kv):
	sql='select '+colums+' from '+tables
	keys,params=where(**kv)
	sql+=keys
	return queryObj(conn,sql,*params)
#insert
def insert(conn,table,**kv):
	"""     eg: insert(conn,'test',id=2,name=5)
		sql:insert inot test(id,name) values(2,5)
	"""
	sql=' insert into '+table
	values =keys=''
	params=[]
	for colum in kv.keys():
		if keys:keys+=','
		if values:values+=','
		keys+=colum
		values+='?'
		param=kv[colum]
		if isinstance(param,unicode):
			param=param.encode('gbk')
		params.append(param)
	keys=' ('+keys+') '	
	values=' values ('+values+') '
	params=tuple(params)
	sql=sql+keys+values
	cur=conn.cursor()
	cur.execute(sql,params)
#update
def update(conn,table,**kv):
	"""eg: update(conn,'test',id=2,name=5)
		sql update test set id=2,name=5
	"""
	sql=' update '+table+' set '
	params=[]
	keys=''
	for colum in kv.keys():
		if keys:keys+=' , '
		keys+=colum+'=?'
		param=kv[colum]
		if isinstance(param,unicode):
			param=param.encode('gbk')
		params.append(kv[colum])
	if where:sql+=where
	cur=conn.cursor()
	cur.execute(sql,params)
#delete 
def delete(conn,table,**kv):
	sql=' delete from '+table
	keys,params=where(**kv)
	sql+=keys
	cur=conn.cursor()
	cur.execute(sql,params)

上面代码可能有一些局限性,但是已经大幅度简化我的代码来了,可能有些在项目的下一步在进一步完善

怎么用呢,像下面这样,那个insert我就省了不少代码大笑

########################################################################
if __name__=='__main__':
	conn=connect()
	#select
	print select(conn,'username','Users',uid=1)[0].username
	print select(conn,'username','Users',uid_gt=1)[0].username
	insert(conn, 'Doc_File',
		filename=message.fileitem.name,
		filepath=message.newpath,
		filesize=message.fileitem.isize,
		uploaderid=message.uploader.uid,
		uploadername=FullUserName(message.uploader),
		senderid=message.sender.uid,
		sendername=FullUserName(message.sender),
		senderunitid=message.sender.unitid,
		senderunitname=message.sender.unitname,
		unitfolderid=message.unitfolder.id if message.unitfolder  else 0,
		unitfoldername=message.unitfolder.name if message.unitfolder  else 0,
		ownerid=message.receiver.id if message.receiver else 0,
		ownername=FullUserName(message.receiver) if message.receiver else '',
		approvername=FullUserName(message.approver) if message.approver else '',
		approverid=message.approver.uid if message.approver else 0,
		filestatus=0 if failed else 1,
		needapporve=1 if message.approver else 0,
		lastmodifytime=message.fileitem.modifyTime,
		note=message.note)
	#delete
	delete(conn,'Doc_File',id=107)

最后在下篇文章将再次简化我们的查询逻辑

将下面写到要吐的代码交给装饰器把

connect.open()

try:

do some thing

finally:

connect.close()

使用Python连接PowerBI数据集 26黑夜终究过去,黎明终将到来前面在介绍过当PowerBI遇到了Python会擦出怎样的火花,那么今天就来介绍下使用Python来连接PowerBI数据集。adodbapi库首先安装这个库pip install adodbapi连接工作区中数据如果是高级容量工作区,则可以通过直接连接线上工作区中的数据集,数据集的连接字符串获取方式可参考PowerBI数据集单表刷新(一),这里还有点要注意,连接方式中并没有指定账号信息,运行代码时会弹框让填写账号和密码。连接本地文件使用dax studio来获取报表文件的连接 阅读详情

相关推荐

python_package.rar

setuptools-1.3.win-amd64-py2.7.exe adodbapi-2.6.0.7.zip Django-1.4.22.tar.gz django-ajax-forms-django-ajax-forms-0.1.1.zip django-ajax-selects-1.4.1.tar.gz django-appconf-1.0.1.tar.gz django-classy-tags-0.7.0.zip django-cms-3.2.0.tar.gz django-cms-3.2.0.zip django-formtools-1.0.zip django-model-utils-2.4.tar.gz django-mssql-1.3.1.zip django-photologue-django-photologue-2.4.zip django-pylibmc-0.6.0.tar.gz django-rosetta-0.6.0.tar.zip django-sekizai-0.9.0.zip django-sortedm2m-1.1.1.tar.gz django-treebeard-3.0.tar.gz djangocms-admin-style-1.0.7.tar.gz ExifRead-2.1.2.tar.gz html5lib-python-1.0b8.zip ibm_db-2.0.6.tar.gz ibm_db_django-1.0.7.tar.gz isapi_wsgi-0.4.2.zip LIST.TXT lzo-indexer-0.0.1.tar.gz PIL-1.1.7.tar.gz Pillow-3.0.0-cp27-none-win_amd64.whl pip-6.1.1.zip polib-1.0.7.tar.gz pyexcelerator-0.6.4.1.tar.bz2 pymemcache-1.3.5.tar.gz pymssql-2.0.0b1-dev-20111018.tar.gz pymssql-2.0.0b1-dev-20111019.tar.gz pymssql-2.0.0b1-dev-20130108.tar.gz pymssql-2.0.0b1-dev-20130403.tar.gz pymssql-2.0.0b1.win-amd64-py2.7.exe pyodbc-3.0.7.win-amd64-py2.7.exe pyodbc-3.0.7.zip python-memcached-1.54.tar.gz pywin32-218.win-amd64-py2.7.exe reportlab-3.2.0.tar.gz ReportLab_2_1.zip requests-2.9.1.tar.gz setuptools-19.2.tar.gz setuptools-19.2.zip six-1.10.0.tar.gz South-1.0.2.tar.gz

使用Python操作MSSQL数据库.

有时想更新或迁移部分SqlServer数据,用SQL只会整几句select,高级点的连个游标都玩不转有木有?拿起VS写个小程序不停的改又编译很烦,有木有? 想用脚本写了有木有? 本文介绍使用python,adodbapi操作数据库: adodbapi 库 python 可以操作mssqlserver的类库有几个,支持python3.x的目前没几个靠谱的.adodbapi是使用ADO...

weixin_30347335的博客 229

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 345

Python例程:使用adodbapi存取二进制数据

昨天尝试了adodbapi的常用操作,今天写一个存取二进制图片的程序试试,ado里面存取二进制数据还是要稍复杂点,不知道adodbapi表现又怎么样。例程功能:1. 新建一个测试表,用于存储图片数据2. 读取源图片数据,插入一条记录到测试表3. 读取新插入的表记录,将二进制字段数据写入到目标文件4. 直接打开目标图片文件,看看内容是否与源图片一致  1#codi

iLdf的专栏 1906

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3343

从AMBA到USB:手把手教你评估和选择Synopsys DesignWare里的免费商用IP

本文详细介绍了如何评估和选择Synopsys DesignWare中的免费商用IP,从AMBA到USB等关键模块。通过技术参数核对、验证环境评估和集成注意事项,帮助工程师高效利用这些经过硅验证的商业级IP,提升SoC设计效率。文章还探讨了免费IP与付费IP的边界策略,避免常见陷阱。

weixin_42683394的博客 293

adodbapi orm对象查询(一)

转载注明出处 http://blog.youkuaiyun.com/xugangjava/article/details/7565321 由于项目中需要用到adodbapi,看过一些orm感觉和twisted的 PB兼容性都不是很好, 主要问题是,PB的 Jelly模块无法解析orm内部的一些类型,只有自己造轮子,写个简易的ORM,来简化代码 (最近时间比较紧,有不对的地方欢迎大家拍砖) 1.ad

xugangjava的专栏 1151

从412到200:一步步拆解瑞数6代jsvmp的cookie生成与验证流程

本文深入解析瑞数6代JSVMP的动态安全防护机制,详细拆解从412到200状态的cookie生成与验证流程。通过剖析JSVMP虚拟机核心机制、动态元数据解析及环境检测绕过策略,为逆向工程师提供实用的技术解决方案,帮助突破瑞数6代的高级防御体系。

weixin_30342209的博客 508

adodbapi orm对象查询(四)

Twisted 项目ORM 最终版本, 没有延迟加载,数据字段映射,简单就是美,查询出来的SQL就是对象直接传输到客户端,引用方便, 而且不会因为对象过大而无法传输到客户端 (开始的时候没有将数据分页保存,而是将ADO的recordset 放到一个对象里面保存, 结果客户端里PB反序列化出来直接是 一个字符串 “too big”类似的, 但是原先我用sqlobject 查询的时候 同样是

xugangjava的专栏 1330

redhawk-sc使用简介

数据完整性对结果的准确性有很大影响,所以一定要保证数据完整性,Redhawk-sc在跑完后,Report里有Data Integrity界面,在这个界面会看到设计数据和库文件的数据完整性,在相应的报告中会有没有覆盖到的数据情况,要对每一项仔细检查,保证输入数据没有问题。文件一般加密,用户唯一需要选择的是文件的corner。其中,cell lef除了常规的standard cell,还有如DTCD,BTSV和clamp等cell的lef,不可缺失,否则data integrity将不是100%。

weixin_48518726的博客 3134

RK3588更新NPU驱动的方法

想要在 RK3588 上跑一下 deepseek 的大模型,发现目前的内核提供的 NPU 驱动比较低,无法支持新的大模型,所以需要更新一下我们的 NPU 驱动本次更新的NPU驱动仅适用于RK3588和RK3676系列。

荻夜的博客 2151

adodbapi orm对象查询(三)

转载注明出处 http://blog.youkuaiyun.com/xugangjava/article/details/7565420 接上篇,写两个适配器一个用于查询Query,一个用于Execute ######################################################################## #decorators def Query(fn

xugangjava的专栏 839

YOLOv8 | 代码逐行解析(二) | 从yaml文件到模型定义(代码逐行注释,小白必看)

本文给大家带来的是YOLOv8项目的解读,之前给大家分析了YOLOv8的项目文件分析,这一篇文章给大家带来的是模型训练从我们的yaml文件定义到模型的定义部分的讲解,我们一般只知道如何去训练模型,和配置yaml文件,但是对于yaml文件是如何输入到模型里,模型如何将yaml文件解析出来的确是不知道的,本文的内容接上一篇的代码逐行解析(一) 项目目录分析,本文对于小白来说非常友好,非常推荐大家进行阅读,深度的了解模型的工作原理已经流程,下面我们从yaml文件来讲解。

Snu77的博客 1万+

SqlAlchemy 2.0 中文文档(六十三)

原文:docs.sqlalchemy.org/en/20/contents.html 1.0 变更日志 原文:docs.sqlalchemy.org/en/20/changelog/changelog_10.html 1.0.19 发布日期:2017 年 8 月 3 日 oracle [oracle] [performance] [bug] [py2k] 修复了由于修复了#3937引起的性能回退,其中 cx_Oracle 在 5.3 版本中从其命名空间中删除了.UNICODE符号,这被解释为 c

龙哥盟 1697

【GameFramework框架内置模块】8、文件系统(File System)

最近好忙,鸽了好久。不能颓废了,继续发力。今天分享的是GF框架的文件系统。首先,引用比较官方的说法:GF的FileSystem虚拟文件系统,使用类似磁盘存储的感念对零散的文件进行集中管理,优化资源加载时产生的内存分配,也可以对资源进行局部片段加载,极大的提升了资源加载的性能。通俗点讲就是,我这个模块就是加载磁盘文件的,优化加载时产生的内存分配。那么,它是怎么优化的呢?

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2449

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python 3.2 中adodbapi的问题

一直在使用Python 2.X,最近想测试一下最新的Python 3.2.下载了ActivePython 3.2,PyQt4,Eric5,安装配置完环境. 因为原系统中使用adodbapi连接MSSQL 数据库,所以首先测试一下adodbapi.在ActivePython 3.2中,默认安装了adodbapi的2.4版本,我就直接测试了一下连接数据库. 没想到简单地连接操作就报告错误,一看,是...

weixin_33674437的博客 337

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

adodbapi的bug?

在Python下操作Access数据库,以前一直都是用win32com创建ADO对象,然后操作,最近看到一个adodbapi模块,基于win32com,符合Python DB API 2.0接口,看着不错,就试了试。在使用的时候发现一个问题。当我用adodbapi.connect打开一个Access数据库文件,进行操作,关闭,然后再次调用adodbapi.connect打开同一数据库的时候,会

肥三的专栏 1937

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python 基本知识

  Python (发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在...

yanzhijun888的专栏 587

python 使用 adodbapi 连接mssql2005的连接字符串

装adodbapi前一定要装 pywin32 这个库(http://www.lfd.uci.edu/~gohlke/pythonlibs) 下载adodbapi(http://pan.baidu.com/s/1bnd5j5d),解压,运行命令行python setup.py install 连接字符串 示例: Provider=SQLOLEDB.1;Data Source=1...

weixin_30530939的博客 235

python adodbapi 获取insert的自增ID

1.有两种方法一直是直接是用OutPut cur = con.execute( "insert into sometable OUTPUT INSERTED.idcolumn values('something')" ) cur.rs(RecordSet)里面就包含了 刚插入的ID 2.Set NoCount  On #ins

xugangjava的专栏 4093

Twised 文件传输协议设计

最近在做一个文档的管理系统,用ftp的话 权限 不够,有的目录无权访问。 网上找了一些,都不能够满足业务需要,只有自己来设计一个通信协议来传输文件 设计思路是 切换 服务端和 客户端 的状态来完成文件发送(其实点对点用这个协议也可以) 下面协议测试代码,将D:/book.pdf 发送到D:/1.pdf  后续还需要扩展断点 相关功能 服务端 # -*- coding: gbk -*-

xugangjava的专栏 2971

twisted(iocp)程序在用py2exe打包时的问题

应用程序中打包服务器时用到了iocp import sitecustomize from twisted.internet import iocpreactor iocpreactor.install() from twisted.internet import reactor, threads import sys,os, shutil,pickle from modles impo

xugangjava的专栏 2106
上一篇: adodbapi orm对象查询(一)
下一篇: adodbapi orm对象查询(三)
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值