2

開いている pqxx::connection にアクセスせずに文字列エスケープ機能を使用しようとしています。

次のコードを検討してください。

#include <pqxx/pqxx>
#include <iostream>

int main() {
    pqxx::connection c;
    std::cout << c.quote("this is a test") << std::endl;
}

接続が切断されたことがスローされます。これを達成する別の方法がある場合(できればデータベース接続なしで)、誰かがサインをくれますか?私は何かを見落としましたか?

アップデート:

libpqのドキュメントで、この機能にアクティブな接続が必要な理由について考えられる理由を見つけました。

PQescapeStringConn との唯一の違いは、PQescapeString が PGconn またはエラー パラメータをとらないことです。このため、接続プロパティ (文字エンコーディングなど) に応じて動作を調整できず、誤った結果が生じる可能性があります。また、エラー状態を報告する方法もありません。

4

2 に答える 2

0

文字エスケープ シーケンスは、pqxx をまったく使用しなくても簡単に使用できます。

std::cout << "\"This is a qoute\"" << std::endl;

「\」文字はエスケープ シーケンスを開始します。クォートの場合は、\" と言うだけです

その他のシーケンス: http://en.cppreference.com/w/cpp/language/escape

于 2012-09-28T17:07:41.503 に答える