यह पोस्ट थोड़ी पुरानी है, लेकिन मैं एक ही प्रश्न पर भाग गया। मैंने उपरोक्त विधि को नियोजित किया और यह मेरे मामले के लिए बिल्कुल सही नहीं था, जो एक वेक्टर लेने और स्ट्रीम के लिए इसका उपयोग करने की कोशिश कर रहा था। मैं जो कर रहा था वह यूयूआईडी ले रहा था और इसे तालिका में उपयोग करने के लिए 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
नहीं चला लेते, तब तक आपको स्ट्रीम को इधर-उधर रखना होगा ।
उम्मीद है कि यह किसी की मदद करेगा और उनका समय बचाएगा।