d_stranz, you are partially right. QSqlTableModel needs a QSqlDatabase in a constructor and uses "default" one if I don't give it. In case of object (not pointer) QSqlTableModel's constructor calling before addDatabase function call, but in case of pointer default db exists. Here is a full answer
I didn't check exec() and select() results to reduce code exceptionally. I check it in "urgent" project, certainly
Thank you.