sql >> データベース >  >> RDS >> Mysql

C ++コネクタでsetBlob()を使用してバイナリデータを設定する方法

    この投稿は少し古いですが、私は同じ質問に出くわしました。私は上記の方法を採用しましたが、ベクトルを取得してそれをストリームに使用しようとした私の場合には、正しく機能しませんでした。私が行っていたのは、UUIDを取得し、それを16バイトのバイナリバージョンに変換してテーブルで使用することでした。上記の方法を使用すると、バッファの半分しか入力されていないことがわかりました。

    最終的にstringstreamを使用しました 。

    std::vector<unsigned char>  convertedId;
    std::stringstream           stream;
    
    // convertedId has been populated with the 16 byte binary version
    stream = std::stringstream(std::string(convertedId.begin(), convertedId.end()));
    // Parameter 1 is BINARY(16)
    pStatement->setBlob(1, &stream);
    

    覚えておくべき他のいくつかのこと。 executeのいずれかが実行されるまでストリームにアクセスしません バリアントはと呼ばれます。したがって、executeを実行するまで、ストリームを維持する必要があります。 。

    うまくいけば、これは誰かを助け、彼らの時間を節約するでしょう。



    1. codeigniterを使用して複数の画像をアップロードする方法

    2. MySQL5.5.9およびTYPEでのHibernateテーブル作成エラー

    3. Heroku Postgresエラー:PGError:エラー:リレーション組織が存在しません(ActiveRecord ::StatementInvalid)

    4. LOAD_FILEはNULLを返します