2017-02-17 90 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對象()