我已经编写了一个基于Qt助手的SQL查询,它说你可以使用该prepare()方法而不是exec()那时你可以通过两个方法的帮助传递你的参数:
bindvalue()和addbindvalue()
这是我的问题的代码段:
Query->prepare("SELECT ID , Row , Col FROM sometable WHERE Row = :row AND Col = :col");
Query->bindValue(":row" , __Row);
Query->bindValue(":col" ,__Col);
Query->exec();
qDebug("%s" , Query->executedQuery().toStdString().c_str());
Run Code Online (Sandbox Code Playgroud)
输出:
SELECT ID,Row,Col FROM sometable WHERE Row =?和Col =?
而且我还使用了另一种建议方式:
Query->prepare("SELECT ID , Row , Col FROM sometable WHERE Row = :row AND Col = :col");
Query->addBindValue(0 , __Row);
Query->addBindValue(1 ,__Col);
Query->exec();
qDebug("%s" , Query->executedQuery().toStdString().c_str());
Run Code Online (Sandbox Code Playgroud)
输出:
SELECT ID,Row,Col FROM sometable WHERE Row =?和Col =?
但是当我exec() …
如果失败,我知道做一个new(std::no_throw)会设置指针NULL.我也知道普通new会std::bad_alloc在失败时抛出异常.
如果它抛出,法线new还会设置指针NULL吗?或者我应该将其设置NULL为catch()块?
QThread::terminate()文档声明不鼓励通过调用此函数来终止线程.
在我的程序中,我需要在完成执行之前终止一个线程.线程正在执行一些繁重的计算,我希望用户有控制权来停止计算.
我怎么能这样做而不是打电话QThread::terminate()?
该函数QDate::toString(const QString &format)允许显示月份名称MMM(例如“Jan”到“Dec”)或MMMM(例如“January”到“December”)。
但是这个函数使用来自QLocale::system()(源代码)的系统区域设置。
QDate对于特定的 QLocale显示带有月份名称的最简单方法是什么?
我有一个QHash<QString,QString>.我使用以下表达式来检查是否存在值QHash::keys().
//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
有时上述条件匹配,有时不适用于不同案例的相同字母.是QHash::contains方法是否区分大小写?