加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何从SQL查询中提取数据并将其分配给Odoo类列?

发布时间:2020-12-12 07:29:10 所属栏目:MsSql教程 来源:网络整理
导读:我一直在尝试从.mdb数据库中提取数据并将其放入Odoo 8类列中. 这是我的.py文件 class attendance_biometric(osv.Model): _name="attendance.biometric" _rec_name='name' _columns={ 'fdate':fields.datetime('From Date'),'tdate':fields.datetime('To Date'
我一直在尝试从.mdb数据库中提取数据并将其放入Odoo 8类列中.

这是我的.py文件

class attendance_biometric(osv.Model):
    _name="attendance.biometric"
    _rec_name='name'
    _columns={

        'fdate':fields.datetime('From Date'),'tdate':fields.datetime('To Date'),'code':fields.integer('Code'),'name':fields.many2one('res.users','Employee Name',readonly=True),'ref': fields.one2many('bio.data','bio_ref','Data'),}

    _defaults = {
            'name': lambda obj,cr,uid,context: uid,}


def confirm_submit(self,ids,context=None):
        result=[]
        DBfile = '/home/administrator/test.mdb'
        conn = pyodbc.connect('DRIVER=MDBtools;DBQ='+DBfile)
        cr = conn.cursor()
        sql = '''
            select InTime,OutTime,OutDeviceId,Duration from 
AttendanceLogs '''
        cr.execute(sql)
        rows = cr.fetchall()
        for row in enumerate(rows):
            result.append(row)
        raise osv.except_osv(_('Info'),_('Data : %sn' % (result)))

现在,当我点击提交按钮进行一些重新工作后,数据显示如下图所示

有人可以提供宝贵的意见吗?比如如何将这些值放入Odoo类列(我的意思是分配给类的字段)以及如何从两个表中获取列.

解决方法

你需要了解odoo中的fetch类型.
- cr.dictfetchall()
       It will returns the list of dictionary.
       Example:
           [{'column1':'value_column1',},{'column2':'value_column2',}] 

 - cr.dictfetchone() 
       It will return dictionary (Single record)
       Example:
           {'column1':'value_column1',}


 - cr.fetchall()
        It will returns the list of tuple.
        Example: 
            [('value_column1'),('value_column2'),].



 - cr.fetchone()
        It will returns the list of tuple.
        Example: 
            ('value_column1')

所以更新你的代码,

res = cr.dictfetchall()
result['sname'] = res and res[0]['sname']

Whatever the values you want to set,all those must be returned by query.

但是,这是一个示例,您可能需要根据您的具体情况进行更新.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读