标签: qsqlquery

xml路径返回"&lt;" for <和"&gt;" for>执行查询时.如何获得原始价值?

我有一个查询,根据条件产生一些文本.但是不要担心所有条件,我只是在'md.OtherMedication ='OTHERMEDICATION'及其评论显示时才会遇到问题.

因此,如果评论有价值,<shubham> 那么它就会返回

 &lt;shubham&gt;
Run Code Online (Sandbox Code Playgroud)

这不是预期的结果.以下是我正在使用的查询.

Select '' + CASE WHEN md.OtherMedication = 'OTHERMEDICATION' THEN md.Comment ELSE '' END
        FROM Medication md
        WHERE md.HraDiagnosisId = 94121 FOR XML PATH(N'')
Run Code Online (Sandbox Code Playgroud)

我期待<shubham>结果.

sql sql-server stored-procedures qsqlquery

4
推荐指数
2
解决办法
2522
查看次数

Qt QSqlQuery 返回json

我在我的应用程序中创建了一个 sqlquery 方法,它基本上获取 SQL 命令并以 json 形式返回结果,问题是,当填充"和其他有问题的字符时,这会创建无效的 json 。

我尝试QObject先创建一个,然后将其序列化为 JSON,但我无法实现。

即使数据包含符号,如何使该方法生成有效的 json "

QString Api::SQLQuery(const QString & sqlquery)
{
QSqlQuery query;

bool firstline = true;
query.setForwardOnly(true);
if(query.exec(sqlquery))
{
    QString answer = "[";
    while(query.next())
        {
            if(firstline){firstline = false;}else {answer += ",";}

            answer += "{";
            for(int x=0; x < query.record().count(); ++x)
            {
                if(x != 0){answer += ",";}
                answer += "\""+query.record().fieldName(x) +"\":\""+ query.value(x).toString()+"\"";
            }
            answer += "}";
        }
    answer += "]";
    return answer;
}
else
{
    return …
Run Code Online (Sandbox Code Playgroud)

c++ mysql qt json qsqlquery

3
推荐指数
1
解决办法
4648
查看次数

从QSqlQuery中检索行数,但得到-1

我正在尝试获取QSqlQuery的行数,数据库驱动程序是qsqlite

bool Database::runSQL(QSqlQueryModel *model, const QString & q)
{
    Q_ASSERT (model);

    model->setQuery(QSqlQuery(q, my_db));
    rowCount = model->query().size();
    return my_db.lastError().isValid();
}
Run Code Online (Sandbox Code Playgroud)

这里的查询是一个选择查询,但我仍然得到-1;

如果我使用model->rowCount()我只获得显示的那些,例如256,但select count(*)返回120k结果.

这有什么不对?

sqlite qt4 qt4.8 qsqlquery

2
推荐指数
2
解决办法
4311
查看次数

如何从特定行数中进行选择?

在SQL查询中,例如,如何从行号10到50中选择特定数量的行.

SELECT top 15000 [ID].... 
Run Code Online (Sandbox Code Playgroud)

将获得前15000行,但如果我想获得下一个15000,我该怎么办?

mysql sql sql-server qsqlquery

2
推荐指数
1
解决办法
2331
查看次数

QSqlQuery 如何获取计数值?

我有一个查询,它只是根据某些条件获取表的计数,例如:

QSqlQuery query("SELECT COUNT(*) FROM some_table WHERE some_value = :something");
query.bindValue(":something", "something");
Run Code Online (Sandbox Code Playgroud)

我的问题是我如何得到这个结果,显然这是你会使用的地方

query.value(int);
query.value(QString);
Run Code Online (Sandbox Code Playgroud)

但是文档说不应该使用 int index one,因为我们不知道索引是什么,我不能使用字符串 one,因为没有文件可以定义为我想要的结果。所以假设我说我是正确的,我怎么能从这个查询中将计数整数值放入一个 int 变量中

干杯

c++ qt qsqlquery

2
推荐指数
1
解决办法
2310
查看次数

如何使用QtSql获取行数和列数?

我已阅读Qt文档,无法从语言本身找到直接从查询结果中获取行数和列数的方法.我能想到的唯一方法就是SELECT COUNT(*) FROM table_name在mysql查询中使用它.

像另一个连接器(PHP,python,C++等),据我所知,没有直接的方法来获取这些值.也许我想念一些东西.那么,有没有可能的方法呢?也许是这样的:

int rows = db_connection->get_row_counts ();
int columns = db_connection->get_column_counts ();
Run Code Online (Sandbox Code Playgroud)

c++ mysql qt qtsql qsqlquery

2
推荐指数
1
解决办法
4867
查看次数

PyQt:如何从选择查询中获取行值

我正在 PyQt 中创建一个应用程序,我想在其中创建一个列表,列表项是 SQL 查询的结果。我正在尝试通过以下代码执行此操作:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtSql import *

def main():  
    app  = QApplication(sys.argv)
    win=QWidget()
    layout=QHBoxLayout()
    db = QSqlDatabase.addDatabase("QODBC")
    win.setWindowTitle("Connect to MSSQL Database Example")   
    db.setHostName('LAPTOP-B79DRPA3')
    db.setDatabaseName('local')
    db.open()
    if (db.open()==False):     
      QMessageBox.critical(None, "Database Error",
                db.lastError().text())   

    query = QSqlQuery () 
    query.exec_  ("select lydelse, bransch from [Sarah].[dbo].fraga")

    listWidget = QListWidget()
    index=0
    while (query.next()):
        listWidget.addItem(str(query.value(index)))
        index = index+1
    listWidget.setSelectionMode(QAbstractItemView.ExtendedSelection)
    layout.addWidget(listWidget)
    win.setLayout(layout)
    win.show()
    return app.exec_()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

但是这里发生的事情是输出是一个包含来自不同列的项目的列表。我想要的是我应该能够选择一列并将所有行项目作为 list-items 添加到列表中:

index=0
while (query.next()): …
Run Code Online (Sandbox Code Playgroud)

python pyqt qsqlquery

2
推荐指数
1
解决办法
4881
查看次数

标题点击时QTableView c ++排序

当我点击列标题时,我需要在表格中对列进行排序.但现在我不能,那是我的桌子:

在此输入图像描述

如果单击标题,则无法执行操作.

这是我的c ++ QT代码:

    void showTable()
{
    connOpen();
    QSqlQueryModel * myModel=new QSqlQueryModel();
    QSqlQuery select;
    if (!select.exec("select * from tab")) {
        QMessageBox::critical(this, tr("Error"), select.lastError().text());
    }
    else {
        myModel->setQuery(select);
        ui->tableView->setModel(myModel);
    }
    connClose();
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

c++ qt qtableview qt5 qsqlquery

2
推荐指数
1
解决办法
200
查看次数

如果qpad关闭但端口是打开的,可以恢复qpad查询吗?

我运行了多个查询,但在保存之前,qpad崩溃了.但是q-port,运行这些查询(在我的Windows机器上)仍然是打开的.我可以分别通过\v和恢复变量和函数\f.

有没有办法恢复q statements我运行的所有使用qpad?我忘了维护一个日志文件,因此我试图找到一种方法来恢复查询使用q-port.

谢谢

console kdb qsqlquery

1
推荐指数
1
解决办法
139
查看次数

四舍五入到最接近的 5 美分

我有一个要求,即金额值应四舍五入到最接近的 5 美分到 2 个小数位。

 Example:
 255.263745  to 255.25  -- 26 taken to 25
 57.2115     to 57.20  -- 21 taken to 20
 100.75586   to 100.75 
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但无法获得所需的输出。

select (RIGHT('00000000'+LEFT( CAST(CAST( ISNULL(198.85,0)*ISNULL(128.370,0) AS DECIMAL( 15,0)) AS VARCHAR( 15 )), 8 ), 8 ))

select CEILING(((ISNULL(198.85,0) * (ISNULL(128.370,0)/100)))/.05) *.05
Run Code Online (Sandbox Code Playgroud)

工作样本:

SELECT REPLACE(FORMAT(CAST(ROUND(((ISNULL(198.85,0) * (ISNULL(128.370,0)/100)/05)),2)*05 AS DECIMAL(10,2)),'000000.00'),'.','') AS [Actual Amount]
Run Code Online (Sandbox Code Playgroud)

输出:00025525

sql t-sql sql-server rounding qsqlquery

1
推荐指数
1
解决办法
43
查看次数

标签 统计

qsqlquery ×10

c++ ×4

qt ×4

mysql ×3

sql ×3

sql-server ×3

console ×1

json ×1

kdb ×1

pyqt ×1

python ×1

qt4 ×1

qt4.8 ×1

qt5 ×1

qtableview ×1

qtsql ×1

rounding ×1

sqlite ×1

stored-procedures ×1

t-sql ×1