EscapeStatement

EscapeStatementクラス

EscapeStatement は、エスケープ関数を用いて PreparedStatement と同形式のテンプレート文を実行する。 ただし、プレースホルダの展開はローカル側で行われる。 PreparedStatement と異なり、prepare() 呼び出し時に DBMS アクセスは発生しない。

使い方は PreparedStatement と同じ API となっている。
    EscapeStatement stmt = conn->createEscapeStatement();
    stmt->prepare("select * from tbl where name = ?");
    stmt->setString(1, "nine");
    ResultSet rs = stmt->executeQuery();
PreparedStatement と異なり、パラメータ部分以外にプレースホルダを置くこともできる。
    EscapeStatement stmt = conn->createEscapeStatement();
    stmt->prepare("select * from ? where name = ?");
    stmt->setRawString(1, "tbl");
    stmt->setString(2, "nine");
    ResultSet rs = stmt->executeQuery();
setRawString() 関数を用いればクォートされずに置換される。ただし、エスケープ処理もされないので、使用には注意すること。