2017-02-17 91 views
0

如何将字节对象插入到数据库中。每当我尝试这个时,我最终都会插入一个空字符串(不是NULL)。pyqt5无法插入字节

with open(filepath, 'rb') as f: 
    filehash = hashlib.md5(f.read()).hexdigest() 
img_pkl = pickle.dumps(img, protocol=4) 

record = self.tablemodel.record() 
record.setValue('originfile_path', filepath) 
record.setValue('originfile_hash', filehash) 
record.setValue('image', img_pkl) 
record.setValue('area', area) 
self.tablemodel.insertRecord(-1, record) 

该问题在邮件列表中注明,但从未解决。 https://www.riverbankcomputing.com/pipermail/pyqt/2016-April/037260.html 它还事实证明,它更有意义,使用表格模型时,你可以代替准备好的语句(他也注意到有关的exec()VS exec_在PyQt的一个bug()。

回答

0

你必须明确地转换为。一个QByteArray中

record.setValue('image', QtCore.QByteArray(img_pkl)) 

注意:您也可以选择使用浮动转换numpy.float64对象()