#!/usr/bin/env python

import sys

from PySide6.QtCore import QCoreApplication, QLibraryInfo
from PySide6.QtSql import QSqlQueryModel, QSqlQuery, QSqlDatabase


QUERY = "SELECT type, name FROM sqlite_master WHERE name=?"


def requery(db, name):
    q = QSqlQuery(db)
    if not q.prepare(QUERY):
        print("prepare failed", file=sys.stderr)
    q.addBindValue(name)
    return q


if __name__ == '__main__':
    print('Python {}.{}.{}'.format(sys.version_info[0], sys.version_info[1],
                                   sys.version_info[2]))
    print(QLibraryInfo.build())
    app = QCoreApplication(sys.argv)
    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName(":memory:")
    print("open=", db.open())
    model = QSqlQueryModel()
    q = requery(db, "bla")
    print('lastQuery="', q.lastQuery(), '"\n>setQuery')
    model.setQuery(q)
    print('\n<setQuery\nlastQuery="', q.lastQuery())
    db.close()
