2016-06-17 12 views
7

मैं एक .mdb डेटाबेस से डेटा निकालने का प्रयास कर रहा हूं और इसे ओडू 8 क्लास कॉलम में प्राप्त कर रहा हूं।SQL क्वेरी से डेटा निकालने और इसे ओडू कक्षा कॉलम में असाइन करने के लिए कैसे करें?

यह मेरा .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, 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

किसी प्रदान कर सके इस पर मूल्यवान इनपुट? जैसे कि ओडू क्लास कॉलम में उन मानों को कैसे प्राप्त करें (मेरा मतलब कक्षा के उन फ़ील्ड को असाइन करना था) और दो टेबलों से कॉलम कैसे प्राप्त करें।

+0

और अधिक देखें। (एमडीबी फ़ाइल) –

+0

किसी भी सुझाव के साथ कोई भी !!! !!! –

उत्तर

2

आपको 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.

हालांकि इस उदाहरण आप अपनी स्थिति के अनुसार इसे अद्यतन करने की आवश्यकता हो सकती है।

+0

एमिप्रो टेक्नोलॉजीज, सबसे पहले आपके समझाए गए उत्तर के लिए बहुत बहुत धन्यवाद। लेकिन अब मुझे कुछ ऐसा त्रुटि मिल रही है: विशेषताएँ त्रुटि: 'pyodbc.Cursor' ऑब्जेक्ट में कोई विशेषता नहीं है 'dictfetchall' –

0

प्रयास करें .. स्थापित करने के लिए/pyodbc संस्करण को अपग्रेड अपने एक differnent डेटाबेस से अधिक this लिंक

+0

मैंने पहले से ही उस लिंक को रेफर करके अपग्रेड कर लिया है। यह अब भी काम नहीं करता है –

संबंधित मुद्दे