Bài đăng này hơi cũ, nhưng tôi đã gặp câu hỏi tương tự. Tôi đã sử dụng phương pháp ở trên và nó không hoàn toàn phù hợp với trường hợp của tôi, đó là cố gắng lấy một vectơ và sử dụng nó cho luồng. Những gì tôi đang làm là lấy một UUID và chuyển đổi nó thành một phiên bản nhị phân 16 byte để sử dụng trong bảng. Bằng cách sử dụng phương pháp trên, tôi thấy rằng chỉ một nửa bộ đệm của tôi đang được điền.
Tôi đã kết thúc bằng cách sử dụng 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);
Một số điều khác cần ghi nhớ. Luồng không được truy cập cho đến khi một trong các execute
các biến thể được gọi. Vì vậy, bạn sẽ cần phải duy trì luồng cho đến khi bạn chạy execute
.
Hy vọng rằng điều này sẽ giúp ích cho ai đó và tiết kiệm thời gian cho họ.