当前位置:数据库 > SQLite >>

SQLite中如何从Cursor中取出一个对象。

我按照主键查询出来的数据放在了一个Cursor中,现在我想把这条记录去出来,可是我还是很是不懂,总是提示错误,求哪位高手给我点提示-- 谢谢
追问:给个QQ,交流一下吧
答案:在使用query的时候,可以设置取得的条件,不知道你基于什么语言的,可以讨论讨论
其他:我要存入一个状态到数据库里,但是发现Cursor类没有getBoolean这样的方法,要 直接使用long型 0 1 来区分好了 # encoding: utf-8

import sqlite3

class LiteDBI:
    ''' SQLite3驱动的公共数据库接口类 '''
    def __init__(self, database=':memory:'):
        self.conn = sqlite3.connect(database)

    def close(self):
        self.conn.close()

    def query(self, sql, *args, **kwg):
        asdict = dict(kwg).get('asdict')
        curr = self.conn.cursor()
        curr.execute(sql, args)
        fields = [f[0] for f in curr.descriptions]
        for r in curr:
            yield dict(map(None, fields, r)) if asdict else r
        curr.close() 


假设在项目公共定义模块中定义的各种类如下
# encoding: utf-8

# 从数据库接口类中导入LiteDBI接口
from dbi import LiteDBI

class ClassRoom(object):
    def __init__(self, **kwg):
        self.__dict__ = dict(kwg)
    def __str__(self):
        return 'Class Room: %s'%self.__dict__
 ...
class ClassRoomMgr(object):
    def __init__(self, dbi):
        self.dbi = dbi
        self.cached = {}
        self.sql = 'select * from classroom where classroomid = ?'
    def __getitem__(self, k):
        if k in not self.cached:
            for r in self.dbi.query(self.sql, k, asdict=True):
                 self.cached[r['id']] = ClassRoom(**r)
        return self.cached[k]
...

# encoding: utf-8

# 从项目公共定义模块中导入各种类
from projcommon.cls import *

def tester():
    dbi = LiteDBI('storage.db')
    classroommgr = ClassRoomMgr(dbi)
    print(classroommgr[102])
    dbi.close()

if __name__ == '__main__':
    test()

上一个:sql语句能够列出一个表所有列的列名么? sqlite能够列出一个表所有列的列名么?
下一个:sqlite 3.x 是什么

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,