从 QT 复选框到 Postgresql 选择星期几
Day(s) of week selection from QT checkbox to Postgresql
我在Qt应用程序GUI中有一组代表一周中几天的复选框,我选择一天或多天,并根据选中的框,将查询字符串传递给PostgreSQL以显示这些日子的某些数据 - 例如,如果我检查星期一和星期三,则应将extract (dow from timestamp) = 1 or extract(dow from timestamp) = 3
添加到我的查询中。我刚刚输入了一个粗略的解决方案 - 虽然在我写这篇文章时还没有测试过 - 但我想知道是否有一种更短 - 更优雅 - 的方法,我在这里错过了。代码如下: -在执行主查询之前,稍后将queryAdditionCalltimePart
和queryAdditionCallStampPart
字符串添加到我的主查询QString
的相关部分-
bool checkboxArray[7];
bool mult = false;
checkboxArray[0] = this->ui->checkBoxMonday->isChecked();
checkboxArray[1] = this->ui->checkBoxTuesday->isChecked();
checkboxArray[2] = this->ui->checkBoxWednesday->isChecked();
checkboxArray[3] = this->ui->checkBoxThursday->isChecked();
checkboxArray[4] = this->ui->checkBoxFriday->isChecked();
checkboxArray[5] = this->ui->checkBoxSaturday->isChecked();
checkboxArray[6] = this->ui->checkBoxSunday->isChecked();
QString queryAdditionCalltimePart = "";
QString queryAdditionCalStampPart = "";
int count = 0;
queryAdditionCalltimePart.append("(");
queryAdditionCalStampPart.append("(");
for(int i = 0; i < 7; i++)
{
if(checkboxArray[i] == true)
{
count++;
}
}
int x = 0;
for(int i = 0; i < 7; i++)
{
if(checkboxArray[i] == true)
{
queryAdditionCalltimePart.append("(SELECT EXTRACT(DOW FROM calltime) = '" +QString::number(i+1)+"')");
queryAdditionCalStampPart.append("(SELECT EXTRACT(DOW FROM cal.stamp) = '" +QString::number(i+1)+"')");
}
if(count > 1 && checkboxArray[i] == true)
{
if(x == count - 1)
{
}
else
{
queryAdditionCalltimePart.append("OR");
queryAdditionCalStampPart.append("OR");
x++;
}
}
}
queryAdditionCalltimePart.append(")");
queryAdditionCalStampPart.append(")");
您可以在 Qt, http://qt-project.org/doc/qt-4.8/qobject.html#setProperty 中的任何小部件中添加属性。该属性可以包含所需的任何信息。
在您的特定情况下,将 SQL 字符串附加为每个复选框的属性会更干净。
this->ui->checkBoxMonday->setProperty("sql",
"(SELECT EXTRACT(DOW FROM calltime) = '" +QString::number(i+1)+"') OR ";
收到用户输入后,只需附加复选框属性并删除最终的 OR。
相关文章:
- 如何使用默认参数等选择模板专业化
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 选择要调用的构造函数
- C++选择排序算法中的逻辑错误
- QTreeView幻灯片多选后无法使用单击选择
- 无法获取菜单选择以运行函数.C++
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 在C++中,如何通过几种类型从元组中选择多个元素
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 讨论 - 创建矩阵时的数组与向量的向量 - 什么是最实用的选择
- 对可变参数使用声明.如何选择正确的功能
- 选择选举获胜者的程序
- 如何选择在 csv 文件中输出的位置
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- QSqlQuery 不从 postgresql 中选择记录
- 高频插入 PostgreSQL,插入的数据要到几分钟后才能选择?
- 从 QT 复选框到 Postgresql 选择星期几