jjzjj

c++ - QTableView 在模型刷新后保留选择

我尝试构建一个用户界面,在每秒刷新数据的同时显示表格的内容。因此我有一个模型链:QSqlTableModel-访问表内容MyModel-继承自QIdentityProxyModel稍微修改数据(来源是TableModel)SomeFilterModels-以MyModel作为源这个链结束于一个QTableView。因为QSqlTableModel每秒刷新一次,TableView中的任何选择也每秒都会被删除。现在我有两个想法来解决这个问题。防止TableModel检测更改。效果不是很好。捕获模型即将更改之前和之后触发的一些事件,以存储和恢复当前选择。遗憾的是,QIdentityProxy

c++ - 遍历 QSqlQuery 结果集的最有效方法?

我正在使用QODBC查询一个远程MSSQLServer数据库,并且返回了一个结果集,但它看起来好像是针对每条记录向SQLServer逐一发送查询。这对于迭代结果集来说真的很慢。从Qt运行查询,大约需要15秒才能完成。我在SQLServerManagementStudio中运行了相同的查询,它需要1秒才能返回结果。这是我正在使用的代码:QStringconnectionTemplate="DRIVER={SQLSERVER};SERVER=server;DATABASE=db;";QSqlDatabasedb=QSqlDatabase::addDatabase("QODBC3","db"

c++ - QtSQL双插入数据库

问题是当我执行sql插入查询时(我正在使用QtCreator和sqlite),两个新行而不是一个添加到数据库中。这是代码块voidMainWindow::on_insertButton_clicked(){db.open();QStringname=ui->nameLineEdit->text();QStringqueryString="INSERTINTOhighscores(name,score)VALUES'%1',%2";QSqlQueryquery(queryString.arg(name).arg(score));query.exec();}此代码应仅将值名称和分数插入数据

c++ - QtSQL : QSqlRecord doesn't keep the table prefixes

我正在Qt中开发一个小型应用程序,我将SQL库与SQLite一起用作数据库。到目前为止,效果很好。QSqlQuery类只提供了一种通过索引而不是字段名获取列值的方法。但是,使用record()函数可以将查询中的当前行转换为QSqlRecord,它具有value()函数通过字段名称获取值。所以,这工作得很好并且允许我编写更短和更清晰的代码,但是像下面这样的连接查询会带来问题:SELECTt1.*,t2.*FROMtable1ASt1,table2ASt2WHEREt1.table2_id=t2.id所以我们正常执行这个查询,并将一行转换为一条记录。但事实证明,QSqlRecord中的列名

mysql - 查询结果到QML

将SQL查询结果返回到QML的最佳方式是什么?我有这个执行查询的函数:boolStorage::setQuery(QStringquery){QSqlQueryqsqlQuery;boolsuccess=qsqlQuery.exec(query);qDebug()目前这个函数返回一个boolean,但是我想知道如何发送一个SELECT*的结果。什么是最好的方法? 最佳答案 您可以实现Q_INVOKABLE返回QString的函数。然后,您可以在QML中调用该函数。 关于mysql-查询结

c++ - Qt sql查询失败

query->prepare("INSERTINTObusinessweek(id,source,date,headline,body)VALUES(NULL,?,?,?,?)");query->bindValue(1,"source");query->bindValue(2,"date");query->bindValue(3,"headline");query->bindValue(4,"body");if(query->exec()){tt我正在使用QMYSQL。而错误是QSqlError(-1,"","")但是query->exec("INSERTINTObusinesswee

mysql - QSql 连接并从数据库示例中读取? - 未加载驱动程序

我最近开始发现需要从__mysql模块更改为PyQt的QSql,但不知道从哪里开始。我想做的(现在)就是从数据库中读取并打印结果。这是我得到的最远的,但我不断收到从query.exec_()函数返回的“驱动程序未加载驱动程序未加载”错误。请帮忙!db=QSqlDatabase.addDatabase("QMYSQL")db.setHostName(db_host)db.setUserName(db_user)db.setPassword(db_passwd)db.setDatabaseName(db_db)db.setPort(db_port)db.setConnectOptions(

python - QtSql 对比 MySQLdb 对比 SQLAlchemy

我正在开发一个PyQt程序,它很快就会从xml类型的后端切换到本地MySQL服务器上托管的后端。我一直在尝试阅读这三个选项中的每一个,但认为最好问问你们这些神。我目前在使用MySQLdb执行MySQL方面的经验,并且一直在使用它,主要是因为对其他两种方法的存在一无所知。简而言之,问题是每一种的优点/缺点是什么,您会选择哪种?干杯! 最佳答案 我不是SO神,但我确实有一些意见。我在Python中使用SQL的主要经验是使用Django。解决方案取决于您愿意做出的promise。如果您想坚持使用Qt库而只使用PyQt库,那么请使用QtSq

Qt 5 与 SQLite : bindValue() results in "Parameter count mismatch" error

我正在使用SQLite驱动程序在Windows7上使用Qt5.3.1(64位)执行简单的参数化查询。当我使用bindValue()设置查询的单​​个参数的值时,我系统地遇到了可怕的“参数计数不匹配”错误。当我使用addBindValue()时一切正常。请注意,带有bindValue()的代码适用于Qt4.8.5(64位)。完整代码(main.cpp):#includeintmain(int,char*[]){autodb=QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("db.sqlite");db.open();{QSq

Qt 5 与 SQLite : bindValue() results in "Parameter count mismatch" error

我正在使用SQLite驱动程序在Windows7上使用Qt5.3.1(64位)执行简单的参数化查询。当我使用bindValue()设置查询的单​​个参数的值时,我系统地遇到了可怕的“参数计数不匹配”错误。当我使用addBindValue()时一切正常。请注意,带有bindValue()的代码适用于Qt4.8.5(64位)。完整代码(main.cpp):#includeintmain(int,char*[]){autodb=QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("db.sqlite");db.open();{QSq
12