0
我必須使用MySQL Connector/C++讀取存儲在blob字段中的一些圖像。下面的代碼的偉大工程獲取存儲在blob中的MySQL圖像大小
std::istream *blobIn;
char buffer[6750];
memset(buffer, '\0', 6750);
blobIn = res->getBlob("att");
blobIn->read((char*)buffer,6750);
std::ofstream outfile ("foto.jpeg",std::ofstream::binary);
outfile.write (buffer,6750);
outfile.close();
我知道,圖像不能有一個尺寸比6750更大,但我想知道當前的字節大小,做這樣的事情:
std::istream *blobIn;
char* buffer;
int size = getByteSizeFromBlob();
buffer = new char[size];
blobIn = res->getBlob("att");
blobIn->read((char*)buffer,size);
....
delete buffer;
一些人們在互聯網上建議使用此功能
SELECT OCTET_LENGTH('att') FROM table
或
SELECT LENGTH('att') FROM table
問題是這個查詢總是返回3,而blob返回,例如6110字節。使用MySQL Workbench,如果我選擇「在編輯器中打開值」,我可以看到正確的字節大小,那麼如何在C++中檢索相應的大小?