用C为python3.1封装mysql接口(二)

此文件为python的,对C模块的再次封装,看了一会语法。开工。。。

 

#_oopmysql.py
#__开头的类成员为私有。其他都为公共的
import _mytest
class mysql:
    def __init__(self):#构造函数  创建对象时如此  xxx = mysql()
        self.__sql = _mytest.creat()
        self.affnum = 0 #每次执行sql语句后受影响的行数
        self.rownum = 0 #每次执行sql语句后结果集总行数
        self.colnum = 0 #每次执行sql语句后的每行的总列数
        self.curr_rownum = 0 #当前行数
    def __del__(self):#析构函数,出作用域析构,或者显式调用del
        _mytest.close(self.__sql)
    #主机名/ip  用户名 密码 数据库 端口 unix_flag clientflag
    #连接成功返回True,失败返回False
    def connect(self, host, user, passwd="", db="test", port=3306, unix_flag="", clientflag=0):
        if _mytest.connect(self.__sql, host, user, passwd, db, port, unix_flag, clientflag) == 0:
            return True
        else:
            return False
    #关闭数据库
    def close(self):
        _mytest.close(self.__sql)
    #设置此次连接编码
    #返回布尔值
    def setcode(self, codeing="utf8"):
        self.code = codeing
        if _mytest.setcoding(self.__sql, self.code) == 0:
            return True
        else:
            return False
    #获取此次连接编码
    #返回字符串
    def getcode(self):
        return self.code
    #查询成功返回True,失败返回False
    def query(self, querystr):
        if _mytest.query(self.__sql, querystr) == -1:
            self.affnum = 0
            self.rownum = 0
            self.colnum = 0
            return False
        else:
            self.affnum = _mytest.affects(self.__sql)
            self.rownum = _mytest.rowscount(self.__sql)
            self.colnum = _mytest.colscount(self.__sql)
            return True
    #返回受影响的行数
    #返回整数
    def affnum(self):
        return self.affnum
    #返回错误信息
    #返回字符串
    def error(self):
        return _mytest.error(self.__sql)
    #返回总行数
    #返回整数
    def numrows(self):
        return self.rownum
    #返回总列数
    #返回整数
    def numcols(self):
        return self.colnum
    #返回当前行序号
    #返回整数
    def getrownum(self):
        if self.curr_rownum == -1:
            self.curr_rownum = 0
            return self.curr_rownum
        else:
            return self.curr_rownum
    #装入下一行
    #返回布尔值,
    def nextrow(self):
        self.curr_rownum = _mytest.fetchnextrow(self.__sql) 
        if self.curr_rownum == -1:
            return False
        else:
            return True
    #获取指定字段或下一个字段
    #返回值为字符串
    def nextfield(self, index=None):
        if index == None:
            return _mytest.nextfield(self.__sql, -1)
        else:
            return _mytest.nextfield(self.__sql, index)
    #获取当前列序号
    #返回值为整数
    def getcolnum(self):
        return _mytest.curcolid(self.__sql)

 

posted @ 2019-03-21 11:28  lcinx  阅读(172)  评论(0编辑  收藏  举报