Найти - Пользователи
Полная версия: PyQt4 + FireBird
Начало » Базы данных » PyQt4 + FireBird
1 2
dndred
Здравствуйте.
У меня проблема с подключением к БД FireBird из PyQt.
Я знаю, что в стандартную поставку Qt под windowsдрайвер Ibase не входит. Я собирал как драйвер отдельно (в виде плагина), так и пересобирал qt целиком с поддержкой ibase.
Если я пытаюсь подключится к базе из программы на C, то всё нормально. А питон упорно заявляет, что
QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QODBC3 QODBC QSQLITE
Что делать? kinterbasdb мне не подходит.
Спасибо.
j2a
Я знаю, что в стандартную поставку Qt под windowsдрайвер Ibase не входит. Я собирал как драйвер отдельно (в виде плагина), так и пересобирал qt целиком с поддержкой ibase.
pyqt пересобирал?
kinterbasdb мне не подходит.
Чем?
dndred
j2a
pyqt пересобирал?
Нет, а нужно?
j2a
Чем?
Тем что мне нужно отображать данные в таблички на формах. Много данных. И быстро. А питоновский цикл по добавлению строк в QTableWidget работает очень медленно.
balu
Не надо все сразу добавлять. А только по мере необходимости.
dndred
balu
Не надо все сразу добавлять. А только по мере необходимости.
Зачем что-то изобретать, если в Qt это уже работает? Не получается только конкретно FireBird и конкретно на винде.
j2a
dndred
j2a
Чем?
Тем что мне нужно отображать данные в таблички на формах. Много данных. И быстро. А питоновский цикл по добавлению строк в QTableWidget работает очень медленно.
А как QtSql с поддержкой Firebird избавит вас от питоновского цикла?
dndred
j2a
А как QtSql с поддержкой Firebird избавит вас от питоновского цикла?
db = QtSql.QSqlDatabase.addDatabase(“QPSQL”)
db.setHostName(“”)
db.setDatabaseName(“test”)
db.setUserName(“dndred”)
db.open()
aw = QtGui.QTableWidget()
cur = QtSql.QSqlTableModel()
cur.setTable(“docs”)
cur.select()
aw.setModel(cur)

Данные отображаются очень быстро.
Qt у меня уже поддерживает FireBird. Только похоже до PyQt это никак не доходит.
Поковырял configure.py в PyQt, но похожего ключика не нашёл. Не подскажите?
j2a
dndred
balu
Не надо все сразу добавлять. А только по мере необходимости.
Зачем что-то изобретать, если в Qt это уже работает? Не получается только конкретно FireBird и конкретно на винде.
Как бы для этого ничего изобретать не надо, и это действительно есть в Qt. Только для этого нужен не QTableWidget, а QTableView.
poltergeist
От цикла избавит только переход от QTableWidget к QTableView + QAbstractTableModel, другое дело что если у вас есть источник данных в виде QSqlTableModel всё это дело решается за вас внутренними средствами Qt. Так действительно уж лучше, и для этого надо самому пересобрать Qt, sip и PyQt, т.к. в последних версиях PyQt уже имеет в себе библиотеки Qt и использует их, а не те, что вы откомпилировали и установили в системе.
j2a
conn = psycopg2.connect(database='test', username='dndred')
curs = conn.cursor()
curs.execute('SELECT * FROM docs')
model = DbAPICursorModel()
model.setResultset(curs)
aw = QtGui.QTableWidget()
aw.setModel(model)
что такое DbAPICursorModel - см. http://pypi.python.org/pypi/EuroPython2006_PyQt4_Examples/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB