2017-07-20 7 views
-6

の無効なオペランドが、私はエラーを取得していますエラーを取得しています私はタイプのconstのchar [42]とダブルバイナリに「演算子+」

バイナリ にダブルタイプのconstのchar [42]との

無効オペランド "それはJavaScriptで行われることになるようなよくは、C++で使用すると、他のタイプの文字列をconcatenanteすることはできません

QSqlQuery update_values; 
update_values.prepare("UPDATE cropdatabase1 SET CropLatitude = '"+latitude+"', CropLongitude = '"+longitude+"', SownDate = '"+SownDate+"', Status = '1',Where UNC = '"+unc+"'"); 
update_values.exec(); 
+3

提供されたボタンを使用してコードを適切にフォーマットしてください。 – meowgoesthedog

+0

docのように準備された文とバインド値を使用すると、苦痛とセキュリティのバグのほとんどが消えてしまいます。 – Mat

+0

別の問題があります: 'WHERE'節の前に余分なカンマ'、 'があります。 – Arulkumar

答えて

1

演算子+」。 変数を文字列に変換し、これらのすべてを連結する必要があります。

私の解決方法では、さまざまなネイティブタイプをストリームにプッシュするように定義された演算子を持つストリングストリームを使用します。次にストリームから最後の文字列を取得するだけです。

std::ostringstream update_cmd; 

update_cmd << "UPDATE cropdatabase1 SET CropLatitude = '"; 
update_cmd << latitude; 
update_cmd << "', CropLongitude = '"; 
update_cmd << longitude; 
update_cmd << "', SownDate = '"; 
update_cmd << SownDate; 
update_cmd << "', Status = '1',Where UNC = '"; 
update_cmd << unc; 

QSqlQuery update_values; 
update_values.prepare(update_cmd.str()); 
update_values.exec(); 
関連する問題