MySQLコネクタC++では、データベース(INSERT、UPDATE、DELETE、MERGE)を変更する場合はsql::Statement::execute()
関数、使用する場合はsql::Statement::executeQuery()
関数を使用できます。単純な読み取り専用クエリを実行します。
クエリの内容がわからない場合、どうすればよいですか。
現時点では、クエリ文字列にINSERT、UPDATE、DELETE、またはMERGEのいずれかのトークンがあるかどうかを確認しています。しかし、これは完璧な方法とはほど遠いものです。
それを行う別の方法はありますか?
ExecuteQuery()を使用してDBを変更するときに、MySQLによって返される警告メッセージを無視するだけですか?
ありがとうございます
実行呼び出しのそれぞれは、その正確な使用状況に基づいて異なる方法で最適化されます。たとえば、executeUpdate
メソッドは、呼び出しから結果セットを返さないことが期待されるため、本来の方法で最適化されます。ニーズに最も適したものを選択する必要があります。以下は、Connector C++リファレンスからの抜粋です。
SQLステートメントがSELECTか、INSERT、UPDATE、DELETEかが事前にわからない場合は、executeメソッドを使用します。 execute()は、SQLクエリがSELECTの場合はtrueを返し、ステートメントがINSERT、UPDATE、またはDELETEの場合はfalseを返します。ステートメントがSELECTクエリの場合、StatementインスタンスでgetResultSetメソッドを呼び出すことで結果を取得できます。ステートメントがINSERT、UPDATE、またはDELETEステートメントの場合、getUpdateCount()を呼び出すことにより、影響を受ける行の数を取得できます。
私が言及した記事はここにあります:
http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html
これがお役に立てば幸いです。