1
私はPOCOフレームワークを使用してSQLiteのBLOBカラムにデータを保存するためにバイナリデータをバインドしようとしていますが、SQLiteラッパーを使用してPOCOフレームワークでBLOBのデータをバインドする
マイコード:
#include <Poco/Data/Session.h>
#include <Poco/Data/SessionPool.h>
#include <Poco/Data/SQLite/Connector.h>
。 。 。
const std::string dbSchemeDemo =
"CREATE TABLE IF NOT EXISTS `demo` ("
"\n\t`key`\tTEXT NOT NULL,"
"\n\t`value`\tINTEGER DEFAULT NULL,"
"\n\t`data`\tBLOB DEFAULT NULL,"
"\n\tPRIMARY KEY(`key`)"
"\n);"
"\nCREATE INDEX IF NOT EXISTS idx_key ON demo(key);";
std::string sqlQueryDemo =
"INSERT INTO demo"
" (key, value, data)"
" VALUES(?, ?, ?)";
auto dbPoolDemo = std::make_unique<Poco::Data::SessionPool>(Poco::Data::SQLite::Connector::KEY, "demo.db3");
Poco::Data::SQLite::Connector::registerConnector();
Poco::Data::Session dbDemo(dbPoolDemo->get());
dbDemo.setConnectionTimeout(2);
dbDemo << "PRAGMA foreign_keys = ON;", Poco::Data::Keywords::now;
dbDemo << dbSchemeDemo, Poco::Data::Keywords::now;
std::vector<unsigned char> data{ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' };
Poco::Data::Statement insertDemo(dbDemo);
insertDemo << sqlQueryDemo,
Poco::Data::Keywords::bind("ABCD"),
Poco::Data::Keywords::bind(Poco::Nullable<int>(1)),
Poco::Data::Keywords::bind(Poco::Nullable<std::vector<unsigned char>>(data)),
Poco::Data::Keywords::now;
「実装されていません」という例外は除外されています。任意のアイデア、どのようにベクトルからバイナリデータをバインドするには?どうもありがとう!美しい心で