Название: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 01, 2012, 19:02 Код
Люди, пишущие на питоне, объясните, почему не происходит соединение с базой данных? И ведь вроде con.open() срабатывает, но далее по тексту программы команда print(cur.lastError().text()) выдаёт ошибку "driver not loaded" Почему он не лоадед? Куда он делся? Вроде ж поддержка в Qt баз данных sqlite идёт "из каробки"? Почему же без проблем работает программа-пример из поставки PyQt, из каталога с примерами? Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: ecspertiza от Февраль 02, 2012, 08:54 Дело может и не в этом, но путь к БД немного странный "SQLiteBase/1.s3db" . Может конечно дело привычки, но если это относительный путь, и устанавливать нужно относительно текущего каталога, я всега пишу "./SQLiteBase/1.s3db"
Еще ты указываешь для соединения имя "Base" - это значит что тебе нунжно будет в конструктор QSqlQuery передавать ссылку на экземпляр QSqlDatabase, так как QSqlQuery без него будет пробовать использовать соединение со стандартным именем. Так что либо убери "Base" либо попробуй так Код: from PyQt4 import QtGui, QtCore, QtSql Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Nimbus от Февраль 02, 2012, 16:53 >"QSQLITE "
А пробел в названии драйвера допустим? Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 03, 2012, 18:34 Так что либо убери "Base" либо попробуй так Код: from PyQt4 import QtGui, QtCore, QtSql а чего изменилось-то? п.с. пишу под windows Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 03, 2012, 18:38 Пардон, увидел, что изменилось. Щаз попробую.
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 04, 2012, 12:45 Соединение установилось. Но, блин, что это за мерзопакость, когда в ошибке тебе пишут совсем не то, что есть на самом деле? Причём тут какой-то драйвер, когда просто напросто для QtSqlQuery не было указано с каким объектом соединения работать?
Новый вопрос: Не получается выбрать данные из таблицы для QtSqlTableModel. С QtSqlQuryModel всё работает без проблем. Код
Вот я указываю self.model2.setTable("One"). А каким макаром он узнает из какого соединения брать эту таблицу-то? Как ему указать, что работать нужно с соединением con? Он мне и показывает пустой QtGui.QTableView() в итоге. Что-то в моём учебнике не дописано. Попытался сам найти среди методов QtSqlTableModel метод для указания соединения, не нашёл. Плиз, хелп! Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Nimbus от Февраль 05, 2012, 08:30 self.model2 = QtSql.QSqlTableModel(self, self.con)
По идее так её надо создавать, но только уже не в конструкторе, ибо там ещё ничего неизвестно об атрибуте con, а в методе connect :) Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 05, 2012, 10:43 Пасиб, попробую.
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Февраль 07, 2012, 18:08 Мне интересно, вот указал я для QSqlTableModel таблицу, а в ней двадцать тысяч записей. Он что все двадцать тысяч разом заграбастает? Или как этот механизм работает?
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: ecspertiza от Февраль 07, 2012, 20:35 нет не все, вроде по 250, остальные по необходимости подгружает
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Сентябрь 08, 2013, 15:35 Код Результат работы программы: Существует ли путь? True error Driver not loaded Driver not loaded ----- Да что, дери его за ногу, опять не так-то? В этой же директории лежит другая моя питон-программа, с граф. интерфейсом, с моделями, менюшками, из которой я и скопировал эти две строчки на подключение к БД. Но та программа без проблем подключается, а эта ни в какую! >:( Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: panAlexey от Сентябрь 09, 2013, 15:09 Может стоит привести "./MainDB/reestr.sqlite3" к абсолютному пути для
kon.setDatabaseName("./MainDB/reestr.sqlite3") ??? Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Сентябрь 09, 2013, 17:53 Пытался. Безрезультатно.
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Сентябрь 09, 2013, 18:05 И ведь всё различие между двумя программами: в вышеприведённой соединение создаётся сразу же; в той в другой, упомянутой мною, соединение создаётся в теле метода экземпляра класса основанного на QtGui.QMainWindow. Т.е. там self.kon = QtSql.QSqlDatabase.add... и т.д.
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Пытон от Сентябрь 09, 2013, 18:40 Итить-колотить, что, оказывается, причиной-то всему этому безобразию является!
Без app=QtGui.QApplication(sys.argv) никакого доступа к БД не получишь! Добавляю эту строчку в начало программы - есть подключение к БД, помещаю её в комментарий - нет подключения к БД. QtSql без QtGui.QApplication не фурычит? А почаму? ??? Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Bepec от Сентябрь 09, 2013, 18:42 Кхм. Оно не фурычит без цикла событий. А цикл событий запускается при помощи QApplication/QCoreApplication/EventLoop я так думаю. Хотя и нет полной уверенности.
Название: Re: PyQt4+QtSql+SQLITE. Не соединяется с базой! Отправлено: Old от Сентябрь 09, 2013, 18:56 QtSql без QtGui.QApplication не фурычит? А почаму? ??? Есть QCoreApplication. |