from PyQt4 import QtSql, QtGui class win(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.connect() self.hop() def connect(self): self.conn = QtSql.QSqlDatabase.addDatabase("QSQLITE") self.conn.setDatabaseName("D:\DB.sqlite3") self.conn.open() print (self.conn.lastError().text()) def hop(self): query = QtSql.QSqlQuery(self.conn) query.exec("SELECT myfield FROM mytable ORDER BY myfield) tmp_myfield = None while query.next(): record = query.record() ident = True if tmp_myfield != record.value("myfield"): ident = False print (tmp_myfield, record.value("myfield"), ident) # выводим на экран предыдущее значение поля и текущее, а также результат их сравнения if ident == False: tmp_myfield = record.value("myfield") if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) w = win() w.show() sys.exit(app.exec_())
Получаем следующее:
None <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC8B8> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> False <PyQt4.QtCore.QPyNullVariant object at 0x02EDC880> <PyQt4.QtCore.QPyNullVariant object at 0x02EDC848> False БАБАЙКА БАБАЙКА True
И как же мне сделать так, чтобы пустое значение РАВНЯЛОСЬ другому пустому значению.
Чего он мне сравнивает не значения, а объекты, заявляя, что нулевой объект по адресу 123 не равен нулевому объекту по адресу 321?
Как сравнивать-то?
Тут Null и там Null ident ДОЛЖЕН БЫТЬ True!!!!!! А он False!
Как быть?