これは以前に尋ねられた解決方法ですが、ps-> executeUpdate()を呼び出すと例外エラーが発生します。誰か明白な例がありますか?C++コネクタでsetBlob()を使用してバイナリデータを設定する方法
答えて
申し訳ありませんマシュー - 私はこの質問(エルロインによる)への前の答えを仮定しました。たぶん私はそれに答えていたはずです。とにかくコードHERESに彼は提案:私は最新(ベータ版)コネクタ/ cppのデバッグLIBSとVS9を使用してい
class DataBuf : public streambuf
{
public:
DataBuf(char * d, size_t s) {
setg(d, d, d + s);
}
};
// prepare sql update statement etc. and set the data pointer
string* pData = ; // ...not part of the original answer
DataBuf buffer((char*)pData->data(), pData->length());
istream stream(&buffer);
ps->setBlob(1, &stream);
ps->executeUpdate(); // This causes an exception in free.c
。私も文字列の代わりにchar *を使ってみました。
free.cで例外が発生した場合は、メモリに問題が発生したことを意味します。私はそのチャットキャストをまっすぐに見ています。 – Puppy
このコードは、私のために正常に動作します:
Driver *driver;
Connection *conn;
driver = get_driver_instance();
conn = driver->connect("tcp://127.0.0.1:3306", "root", "root");
std::auto_ptr use_stmt(conn->createStatement());
use_stmt->execute("USE world");
std::auto_ptr stmt(conn->prepareStatement("INSERT INTO terrain_texture_tiles_0 (data) VALUES(?)"));
std::string value("A\0B", sizeof("A\0B") - 1);
std::istringstream tmp_blob(value);
stmt->setBlob(1, &tmp_blob);
stmt->execute();
はヤロスラフPribyl
...それが役に立てば幸いこの投稿は少し古いですが、私は同じ質問に偶然出会いました。私は上記の方法を採用しましたが、私の場合は正しく動作しませんでした。私の場合は、ベクターを取ってストリームに使用しようとしていました。私がやっていたことは、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
バリアントの1つが呼び出されるまでアクセスされません。したがって、あなたがexecute
を実行するまでストリームを周りに保つ必要があります。
これは誰かを助け、時間を節約することを望みます。
- 1. MySQL C++コネクタ:SetBlob()を使用して複数のBLOBデータをクエリに設定する正しい方法は何ですか?
- 2. mysqlコネクタで自動接続オプションを設定する方法C++
- 3. C#アドインを使用してEnterprise Architectのコネクタのスタートポイントとエンドポイントを設定する
- 4. Selenium WebDriver - C#を使用してページロードタイムアウトを設定する方法
- 5. Pythonを使用してcommoncrawlでバイナリデータを処理する方法
- 6. 実際にコネクタをインストールせずに、C#経由でmysqlコネクタを使用してmysqlに接続する方法
- 7. Cでポストするページを使用してパラメータを設定する方法
- 8. sendMessageを使用してバイナリデータを送信する方法
- 9. GraphQLを使用してバイナリデータをクライアントに返信する方法
- 10. PDOを使用してMSSQLにバイナリデータを挿入する方法
- 11. mysql C++コネクタを使ってクエリを挿入する方法
- 12. Poco MySQLコネクタを使用してデータベースを選択する方法
- 13. JDBCコネクタを使用してmysql変数を設定する方法はありますか?
- 14. C#でFtpWebRequestを使用してポート番号を設定する方法は?
- 15. SDL C++を使用してwin32ウィンドウでGUIボタンを設定する方法は?
- 16. C#を使用してNI-DAQでトライステートを設定する方法
- 17. C#.netで使用してwindow.openのjavascriptでローカルパスを設定する方法
- 18. バイナリデータをWindowsストアアプリケーションのファイルに書き込む方法C++を使用して
- 19. VxWorks Cを使用してバイナリデータをシリアルポートに送信する
- 20. c#を使用してWebクライアントにバイナリデータを投稿する
- 21. OSXでC++を使用してopencv highguiを使用してアクティブなウィンドウをopencvイメージに設定する方法
- 22. バイナリデータの格納にMySQL C++コネクタを使用するにはどうすればよいですか?
- 23. C#のWeb設定でエラーページを使用する方法
- 24. のVisual C#での設定を使用する方法
- 25. Tomcat 8:カスタムファイルでコネクタを設定する
- 26. Pervasiveコネクタを使用してコネクタを作成する
- 27. Paperclipを使用してプログラムでファイルアップロードを設定する方法
- 28. AntでtestNGを使用してCoberturaを設定する方法
- 29. toggle()を使用してjqueryでCookieを設定する方法
- 30. URLを使用してAndroidでアイコンを設定する方法
"私は解決策を実装しようとしました。"コードを投稿しないとどうしたのですか?また、使用しているチュートリアル/サンプルを知ることもできます。 –