2016-06-17 52 views
7

Bir .mdb veritabanından veri ayıklamak ve Odoo 8 sınıf sütunlarına almak için çalışıyordum.SQL sorgusundan veri nasıl alınır ve Odoo sınıf sütunlarına nasıl atanır?

Bu benim .py dosyası

Şimdi Gönder düğmesini tıklayın bazı yeniden işten sonra, veriler aşağıdaki görüntülerde gibi görünür
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, cr, uid, 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 : %s\n' % (result))) 

Results in the logger info

birisi verebilir misiniz Bunun üzerine değerli girdi? Odoo sınıf sütunlarına (sınıfın alanlarına tahsis etmeyi kastediyorum) ve aynı zamanda iki tablodan sütunların nasıl elde edileceğine benzer.

+0

Ve daha başvurmak için. (.MDB dosya) –

+0

Herhangi bir öneri olan herkes. !!!? –

cevap

2

Odoo'daki getirme türlerini anlamanız gerekir.

- 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') 

Yani

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

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

Ancak bu durumunuza göre güncellemek gerekebilir örnektir, böyle kodunuzu şey güncelleyin.

+0

Emipro teknolojileri, Her şeyden önce açıkladığınız cevap için çok teşekkür ederim. Ama şimdi hata gibi bir şey alıyorum: AttributeError: 'pyodbc.Cursor' nesnesinin 'dictfetchall' özniteliği yok –

0

deneyin/install pyodbc sürümü yükseltin .. onun bir differnent veritabanı üzerinde this linki

+0

Zaten bu bağlantıya başvurarak yükselttim. Hala çalışmıyor –