python 数据库blob数据操
#coding=gbk from sqlite3 import dbapi2 1. ------------------------------- 1. jxDataSet 对象 1. 用于保存 打开数据表的数据 1. ------------------------------ class jxDataSet: fields = [ ] # 字段名列表 data = [ ] # 数据表的记录 sql = [ ] # sql 语句 sERR = "" # 打开数据表时的错误信息 # 如果为空,表示打开成功 def __init__ (self ): pass def ok(self): return self.sERR==""
# 一个简单的显示打开结果的函数 disp def disp(self): if self.sERR!="": print("ERROR:",sERR); return print( "RecordCount=", len(self.data) ) print( "fields=",self.fields) for x in self.data: print( x )
# 数据库联接对象 1. class jxconn: DB_Name = "" def __init__ (self, aDB_name ): self.DB_Name = aDB_name
# 打开 sql 指定的数据表 # 入口:sql # 返回: jxDataSet 对象 def opensql( self,sql ): jxData = jxDataSet() jxData.sql = sql try: conn=dbapi2.connect(self.DB_Name,30) except Exception , E: jxData.sERR = str(E) if jxData.sERR!="": return jxData try: cs = conn.cursor() cs.execute( sql ) jxData.fields = [ x[0] for x in cs.description ] jxData.data = cs.fetchall() cs.close() except Exception , E: jxData.sERR = str(E) conn.close() del( conn ) return jxData # 执行 sql 语句 # 入口: sqls # 一个字符串列表,每个元素是一条 sql 语句 # 或者一条 sql 语句 # 返回: 错误信息 # sqls 中所有的 sql语句中, # 要么同时执行,要么同时不执行, # 已执行部分,如果后面的sql语句出现错误,则一起回滚 # def runsql( self,sqls ): if not (type(sqls) in [ str, list]): return "parameter error" if type(sqls)==str: sqls = [ sqls ] n = len(sqls) if (n