Форум сайта python.su
Здравствуйте.
У меня проблема с подключением к БД FireBird из PyQt.
Я знаю, что в стандартную поставку Qt под windowsдрайвер Ibase не входит. Я собирал как драйвер отдельно (в виде плагина), так и пересобирал qt целиком с поддержкой ibase.
Если я пытаюсь подключится к базе из программы на C, то всё нормально. А питон упорно заявляет, что
QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QODBC3 QODBC QSQLITE
Что делать? kinterbasdb мне не подходит.
Спасибо.
Офлайн
Я знаю, что в стандартную поставку Qt под windowsдрайвер Ibase не входит. Я собирал как драйвер отдельно (в виде плагина), так и пересобирал qt целиком с поддержкой ibase.pyqt пересобирал?
kinterbasdb мне не подходит.Чем?
Отредактировано (Апрель 4, 2008 12:04:09)
Офлайн
j2aНет, а нужно?
pyqt пересобирал?
j2aТем что мне нужно отображать данные в таблички на формах. Много данных. И быстро. А питоновский цикл по добавлению строк в QTableWidget работает очень медленно.
Чем?
Офлайн
Не надо все сразу добавлять. А только по мере необходимости.
Офлайн
baluЗачем что-то изобретать, если в Qt это уже работает? Не получается только конкретно FireBird и конкретно на винде.
Не надо все сразу добавлять. А только по мере необходимости.
Офлайн
dndredА как QtSql с поддержкой Firebird избавит вас от питоновского цикла?j2aТем что мне нужно отображать данные в таблички на формах. Много данных. И быстро. А питоновский цикл по добавлению строк в QTableWidget работает очень медленно.
Чем?
Офлайн
j2adb = QtSql.QSqlDatabase.addDatabase(“QPSQL”)
А как QtSql с поддержкой Firebird избавит вас от питоновского цикла?
Отредактировано (Апрель 4, 2008 15:19:46)
Офлайн
dndredКак бы для этого ничего изобретать не надо, и это действительно есть в Qt. Только для этого нужен не QTableWidget, а QTableView.baluЗачем что-то изобретать, если в Qt это уже работает? Не получается только конкретно FireBird и конкретно на винде.
Не надо все сразу добавлять. А только по мере необходимости.
Отредактировано (Апрель 4, 2008 15:14:35)
Офлайн
От цикла избавит только переход от QTableWidget к QTableView + QAbstractTableModel, другое дело что если у вас есть источник данных в виде QSqlTableModel всё это дело решается за вас внутренними средствами Qt. Так действительно уж лучше, и для этого надо самому пересобрать Qt, sip и PyQt, т.к. в последних версиях PyQt уже имеет в себе библиотеки Qt и использует их, а не те, что вы откомпилировали и установили в системе.
Офлайн
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/
Отредактировано (Апрель 4, 2008 15:21:53)
Офлайн