PyQT и MySQL или MSSQL - PullRequest
       7

PyQT и MySQL или MSSQL

1 голос
/ 13 апреля 2011

После долгих исследований и исследований я решил заняться разработкой Python с pyQT4, используя Eric5 в качестве редактора.Тем не менее, я столкнулся с кирпичной стеной, пытаясь заставить MySQL работать.Похоже, что есть проблема с драйвером QMySQL.Из обсуждений, которые я видел до сих пор, единственное исправление - установить pyQT SDK и затем перекомпилировать драйвер MySQL.Болезненный процесс, через который я действительно не хочу проходить.На самом деле я бы предпочел использовать MS SQL, но я не нахожу драйверов для pyQT с поддержкой MSSQL.

Итак, мой вопрос: каков наилучший подход для использования pyQT с MySQL или MSSQL, который на самом делеработает?

В ожидании ответа я мог бы просто поработать с SQLAlchemy и mySQL.Connector, чтобы посмотреть, будет ли он сосуществовать с pyQT.

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011

Если вы предпочитаете использовать MS SQL, в PyQt довольно просто использовать QSqlDatabase и драйвер ODBC.

Вот выдержка из проекта, над которым я работаю, который использует MS SQL.

db = QSqlDatabase.addDatabase('QODBC')
#TODO: Add support for trusted connections.
#("Driver={SQLServer};Server=Your_Server_Name;Database=Your_Database_Name;Trusted_Connection=yes;")
db.setDatabaseName('DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;'
                        % (hostname,
                           databasename,
                           username,
                           password))
db.open()

Очевидно, вам уже нужно было установить переменные hostname, databasename, username и password.Закомментированная строка показывает строку соединения для доверенных соединений;это не то, что мне на самом деле нужно было попробовать, но оно должно работать, если это то, что вам нужно.

После открытия базы данных вы можете использовать QSqlQuery, как если бы вы использовали MySql с драйвером PyQt.

1 голос
/ 13 апреля 2011

да, это будет работать, я делаю то же самое. Мне нравится API программирования, например, то, что SQLAlchemy предоставляет по сравнению с исходной SQL-версией модуля Qt QtSql. Он работает хорошо и просто, просто заполните подкласс QAbstractTableModel данными из ваших запросов sqlalchemy, как вы делали это с данными из любого другого объекта python. Это означает, что вы обрабатываете запросы кеширования и базы данных, теряя привлекательность QtSqlTableModel. Но не должно быть слишком плохо.

0 голосов
/ 22 ноября 2011

Вы можете рассмотреть pyodbc для подключения к вашей базе данных, даже если QT предоставляет графический интерфейс. Pyodbc совместим как с MySQL, так и с MS SQL Server.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...