Python中带有PyQt5的Microsoft SQL Server查询结果

2024-05-21 06:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人 我是Python初学者。 我尝试在Python中使用带有PyQt5的microsoftsqlserver查询结果。 我在Microsoft SQL Server 2008 R2中有一个数据库。 我想用Python中的PyQt5查询结果。 看起来像这样,有什么问题吗?你知道吗

from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlQueryModel
from PyQt5.QtWidgets import QTableView, QApplication
import sys

SERVER = '192.168.0.250:1433'
DATABASE = 'openfire'
USERNAME = 'lester'
PASSWORD = '123456'

def createConnection():
connString = f'DRIVER={{SQL Server}};'\
            f'SERVER={SERVER};'\
            f'DATABASE={DATABASE};'\
            f'USERNAME={USERNAME};'\
            f'PASSWORD={PASSWORD}'

global db
db = QSqlDatabase.addDatabase('QODBC')
db.setDatabaseName('connString')

if db.open():
    print('connect to SQL Server successfully')
    return True
else:
    print('connection failed')
    return False

def displayData(sqlStatement):
    print('processing query...')
    qry = QSqlQuery(db)
    qry.prepare(sqlStatement)
    qry.exec()

model = QSqlQueryModel()
model.setQuery(qry)

view = QTableView()
view.setModel(model)
return view

if __name__ =='__main__':
    app = QApplication(sys.argv)

if createConnection():
    SQL_STATEMENT = 'SELECT * FROM ofuser'
    dataView = displayData(SQL_STATEMENT)
    dataView.show()

app.exit()
sys.exit(app.exec_())

Tags: importdbsqlmodelreturnifserversys
2条回答

1433是你的港口。你知道吗

SERVER = '192.168.0.250'
PORT = '1433'
DATABASE = 'openfire'
USERNAME = 'lester'
PASSWORD = '123456'

我自己修改了一些代码。 现在成功了。你知道吗

from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlQueryModel
from PyQt5.QtWidgets import QTableView, QApplication
import sys

SERVER = '192.168.0.253,1433'
DATABASE = 'openfire'
USERNAME = 'lester'
PASSWORD = '123456'

db = QSqlDatabase.addDatabase('QODBC')
db.setDatabaseName(f'Driver={{SQL SERVER}}; Server={SERVER}; Database={DATABASE}; UID={USERNAME}; PWD={PASSWORD}')
db.open()

def displayData(sqlStatement):
    print('processing query...')
    qry = QSqlQuery(db)
    qry.prepare(sqlStatement)
    qry.exec()

    model = QSqlQueryModel()
    model.setQuery(qry)

    view = QTableView()
    view.setModel(model)
    return view

if __name__ =='__main__':
    app = QApplication(sys.argv)
    SQL_STATEMENT = 'SELECT * FROM ofuser'
    dataView = displayData(SQL_STATEMENT)
    dataView.show()
    app.exit()
    sys.exit(app.exec_())

相关问题 更多 >