Qtアシスタントに基づいてSQLクエリを作成しましたが、prepare()
代わりにメソッドを使用できると書かれており、次の2つのメソッドを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());
出力:
SELECT ID , Row , Col FROM sometable WHERE Row = ? AND 列 = ?
また、別の提案された方法を使用しました:
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());
出力:
SELECT ID , Row , Col FROM sometable WHERE Row = ? AND 列 = ?
しかし、exec()
通常使用すると完全に機能し、「?」の代わりに対応する値を置き換えます。
それについての説明はありますか?または、通常の exec() を使用する必要がありますか?