Я использую PySide для получения привязок Qt в python. Проблема, с которой я столкнулась, заключается в том, что она не может найти имя таблицы после подключения к базе данных. Во-первых, я добавил базу данных с помощью QSqlDatabase, а также установил имя в файл базы данных sqlite. После этого я создал QSqlTableModel и установил таблицу как одну из таблиц внутри моей базы данных. Когда я это делаю, ничего не появляется. Вызывая функцию lastError(), он говорит, что таблица не найдена. Я знаю, что соединение с базой данных хорошо, потому что db.open() возвращает true. Я вручную посмотрел в файл базы данных, и в нем действительно есть таблицы с этим конкретным именем. Интересно то, что указатель на базу данных отличается от QSqlDatabase и QSqlTableMode(). Это должно произойти? Указатели разные, но имя (те, которые говорят драйверы = ..., база данных = .... и т. Д.)pyside QSqlTableMode() не может найти таблицу из базы данных из sqlite
В чем может быть проблема? Вот как я его настраиваю.
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("test.db")
print str(db.open())
print str(db.database())
model = QSqlTableModel()
model.setTable("AntennaModels")
model.select()
print str(model.lastError())
Вот что печатает, когда я использую db.database() и model.database()
<PySide.QtSql.QSqlDatabase(driver=""QSQLITE"", database=""test.db"", host="""", port=-1, user="""", open=true) at 0x104bf73b0>
<PySide.QtSql.QSqlDatabase(driver=""QSQLITE"", database=""test.db"", host="""", port=-1, user="""", open=true) at 0x104bf73f8>
Этот относительный путь к базе данных выглядит сомнительным: попробуйте использовать абсолютный путь. – ekhumoro
Хм, он работал с абсолютным путем. Есть ли способ, которым я могу использовать относительные пути? Я знаю, что база данных всегда будет находиться в том же месте, что и текущий файл, поэтому я думал, что просто указать имя будет достаточно. Наверное, нет. Я бы хотел, чтобы он был портативным, поэтому я могу легко упаковать. – TheBlueMan
'os.path.join (os.path.dirname (os.path.absdir (__ file__)), 'test.db')'. – ekhumoro